`
zhenghuali168
  • 浏览: 74698 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java使用图片显示电子邮件地址

阅读更多

今天在逛oschina的时候看见里面有一个代码分享的功能还不错,红薯老大贴出了一段代码个人觉得很实用转出来分享下。 
Java代码  收藏代码
  1. import java.awt.Color;  
  2. import java.awt.Font;  
  3. import java.awt.FontMetrics;  
  4. import java.awt.Graphics2D;  
  5. import java.awt.image.BufferedImage;  
  6. import java.awt.image.IndexColorModel;  
  7. import java.io.FileOutputStream;  
  8. import java.io.IOException;  
  9. import java.io.OutputStream;  
  10.   
  11. import javax.imageio.ImageIO;  
  12.   
  13. /** 
  14.  * 根据文本生成图片的工具 
  15.  * @author Winter Lau 
  16.  * @date 2009-7-30 下午12:58:26 
  17.  */  
  18. public class TextImageUtils {  
  19.   
  20.     private final static IndexColorModel icm = createIndexColorModel();  
  21.   
  22.     static IndexColorModel createIndexColorModel() {  
  23.         BufferedImage ex = new BufferedImage(11, BufferedImage.TYPE_BYTE_INDEXED);  
  24.         IndexColorModel icm = (IndexColorModel) ex.getColorModel();  
  25.         int SIZE = 256;  
  26.         byte[] r = new byte[SIZE];  
  27.         byte[] g = new byte[SIZE];  
  28.         byte[] b = new byte[SIZE];  
  29.         byte[] a = new byte[SIZE];  
  30.         icm.getReds(r);  
  31.         icm.getGreens(g);  
  32.         icm.getBlues(b);  
  33.         java.util.Arrays.fill(a, (byte)255);  
  34.         r[0] = g[0] = b[0] = a[0] = 0//transparent  
  35.         return new IndexColorModel(8, SIZE, r, g, b, a);  
  36.     }  
  37.       
  38.     /** 
  39.      * 生成电子邮件图片 
  40.      * @param email 
  41.      * @param out 
  42.      * @throws IOException 
  43.      */  
  44.     public static void MakeEmailImage(String email, OutputStream out) throws IOException {  
  45.         int height = 22;  
  46.         BufferedImage bi = new BufferedImage(255,height,BufferedImage.TYPE_INT_RGB);          
  47.         Graphics2D g = (Graphics2D)bi.getGraphics();  
  48.         Font mFont = new Font("Verdana", Font.PLAIN, 14);  
  49.         g.setFont(mFont);  
  50.         g.drawString(email, 219);  
  51.         FontMetrics fm = g.getFontMetrics();  
  52.         int new_width = fm.charsWidth(email.toCharArray(), 0, email.length()) + 4;  
  53.         int new_height = fm.getHeight();  
  54.         BufferedImage nbi = new BufferedImage(new_width, new_height,   
  55.             BufferedImage.TYPE_BYTE_INDEXED, icm);  
  56.         Graphics2D g2 = (Graphics2D)nbi.getGraphics();  
  57.         g2.setColor(new Color(0,0,0,0));//透明  
  58.         g2.fillRect(0,0,new_width,new_height);  
  59.         g2.setFont(mFont);  
  60.         g2.setColor(new Color(200,0,0));  
  61.         g2.drawString(email, 2, new_height-4);  
  62.   
  63.         ImageIO.write(nbi, "gif", out);  
  64.     }  
  65.   
  66.     /** 
  67.      * 生成电话号码图片 
  68.      * @param phone 
  69.      * @param out 
  70.      * @throws IOException 
  71.      */  
  72.     public static void MakePhoneImage(String phone, OutputStream out) throws IOException {  
  73.         int height = 22;  
  74.         BufferedImage bi = new BufferedImage(255,height,BufferedImage.TYPE_INT_RGB);          
  75.         Graphics2D g = (Graphics2D)bi.getGraphics();  
  76.         Font mFont = new Font("Verdana", Font.BOLD, 20);  
  77.         g.setFont(mFont);  
  78.         g.drawString(phone, 219);  
  79.         FontMetrics fm = g.getFontMetrics();  
  80.         int new_width = fm.charsWidth(phone.toCharArray(), 0, phone.length()) + 4;  
  81.         int new_height = fm.getHeight();  
  82.         BufferedImage nbi = new BufferedImage(new_width, new_height,  
  83.             BufferedImage.TYPE_BYTE_INDEXED, icm);  
  84.         Graphics2D g2 = (Graphics2D)nbi.getGraphics();  
  85.         g2.setColor(new Color(0,0,0,0));//透明  
  86.         g2.fillRect(0,0,new_width,new_height);  
  87.         g2.setFont(mFont);  
  88.         g2.setColor(new Color(200,0,0));  
  89.         g2.drawString(phone, 2, new_height-4);        
  90.         ImageIO.write(nbi, "gif", out);  
  91.     }  
  92.     /** 
  93.      * 生成产品关键特征 
  94.      * @param attribute 
  95.      * @param out 
  96.      * @throws IOException 
  97.      */  
  98.     public static void MakeProductAttribute(String attribute, OutputStream out) throws IOException{  
  99.         int height = 22;  
  100.         BufferedImage bi = new BufferedImage(255,height,BufferedImage.TYPE_INT_RGB);          
  101.         Graphics2D g = (Graphics2D)bi.getGraphics();  
  102.         Font mFont = new Font("宋体", Font.BOLD, 13);  
  103.         g.setFont(mFont);  
  104.         g.drawString(new String(attribute), 219);  
  105.         FontMetrics fm = g.getFontMetrics();  
  106.         int new_width = fm.charsWidth(attribute.toCharArray(), 0, attribute.length()) + 4;  
  107.         int new_height = fm.getHeight();  
  108.         BufferedImage nbi = new BufferedImage(new_width, new_height,  
  109.            BufferedImage.TYPE_BYTE_INDEXED, icm);  
  110.         Graphics2D g2 = (Graphics2D)nbi.getGraphics();  
  111.         g2.setColor(new Color(0,0,0,0));//透明  
  112.         g2.fillRect(0,0,new_width,new_height);  
  113.         g2.setFont(mFont);  
  114.         g2.setColor(new Color(200,0,0));  
  115.         g2.drawString(attribute, 2, new_height-4);  
  116.         ImageIO.write(nbi, "gif", out);  
  117.     }  
  118.       
  119.     public static void main(String[] args) throws IOException {  
  120.         String num = "020-85551111";  
  121.         FileOutputStream fos = new FileOutputStream("D:/phone.gif");  
  122.         try{  
  123.             MakePhoneImage(num, fos);  
  124.         }finally{  
  125.             fos.close();  
  126.         }  
  127.         String email = "xxxxx@oschina.net";  
  128.         FileOutputStream fos2 = new FileOutputStream("D:/email.gif");  
  129.         try{  
  130.             MakeEmailImage(email, fos2);  
  131.         }finally{  
  132.             fos2.close();  
  133.         }  
  134.     }  
  135. }  
分享到:
评论

相关推荐

    java版电子邮件系统

    Java版电子邮件系统是一种基于Java编程语言实现的电子邮件应用程序,它允许用户发送、接收、存储和管理电子邮件。在本文中,我们将深入探讨Java在构建电子邮件系统中的应用,包括核心技术、架构设计以及实现邮件功能...

    java电子邮件系统

    Java电子邮件系统是基于Java编程...总的来说,这个Java电子邮件系统项目涵盖了Java编程、JavaMail API使用、JSP动态网页开发以及SQL Server数据库管理等多个IT领域的知识,为学习和实践这些技术提供了宝贵的实际案例。

    JAVA 发送HTML格式并带图片的邮件实例

    在Java编程中,发送带有HTML格式和图片的邮件是一项常见的任务,这通常涉及到电子邮件API的使用,例如JavaMail API。以下是对这个主题的详细讲解: 首先,JavaMail API是Java平台上的一个开源库,用于处理电子邮件...

    java版邮件客户端

    Java版邮件客户端是一种基于Java语言实现的程序,它允许用户收发电子邮件,是学习和理解Java编程技术的一个实用示例。这个项目的核心是利用JavaMail API,这是一个强大的库,专门用于处理电子邮件通信。通过JavaMail...

    Java发送带模版的邮件示例

    在Java编程中,发送带有模板的邮件是一项常见的任务,尤其对于企业级应用来说,通过电子邮件进行通知、报告或客户服务是必不可少的。JavaMail API提供了一种标准的方式来处理邮件的发送,而结合模板技术,我们可以...

    JAVA 发送电子邮件

    以下是使用Java发送电子邮件的基本步骤: 1. **建立SMTP连接**:创建一个`Socket`对象并连接到SMTP服务器,通常默认端口为25,SSL/TLS加密时可能为465或587。 2. **身份验证**:与SMTP服务器进行对话,发送登录...

    java发送电子邮件代码

    Java提供了多种方式来发送电子邮件,其中使用JavaMail API结合Spring框架是常见且高效的方法之一。本篇将基于给定的代码片段,深入解析如何在Java应用中实现电子邮件的发送,包括纯文本邮件、HTML格式邮件以及内嵌...

    java实现简单邮件程序

    本书中的示例代码旨在帮助读者理解如何使用Java进行网络编程,特别是如何通过客户端套接字(Client Sockets)来发送电子邮件。通过本书的学习,读者不仅可以掌握基本的网络编程概念,还能了解如何与SMTP服务器进行交互...

    用Java Mail发送带有图片的html格式的邮件.txt

    Java Mail API是Java平台的一个扩展,用于读取和发送电子邮件。它提供了丰富的API来处理各种邮件任务,如发送邮件、读取邮件、处理附件等。Java Mail API基于Internet邮件协议,支持SMTP(简单邮件传输协议)用于...

    java邮件图形化开发

    Java邮件图形化开发是利用Java编程语言来创建一个具有用户友好图形界面的程序,用于发送、接收和管理电子邮件。在本项目中,开发者遵循了张孝祥的《Java邮件开发详解》一书中的指导,利用集成开发环境NetBeans进行...

    java邮件发送组件

    Java邮件发送组件是Java开发中用于发送电子邮件的工具,它使得开发者能够轻松地在应用程序中实现邮件功能。Java Mail API是实现这一功能的核心库,它提供了丰富的接口和类,允许程序进行邮件的创建、发送以及处理。...

    基于Java 实现电子邮件收发系统,用JavaSwing来设计图形化界面

    总结来说,这个项目是一个使用Java和JavaSwing构建的电子邮件收发系统,开发者可以使用Eclipse IDE进行开发,并且已经包含了所有必要的库和配置文件。通过这个项目,可以学习到如何利用JavaMail API处理邮件收发,...

    java实现邮件发送(三种发送方式都有)

    JavaMail API是Java中用于处理电子邮件的标准库,包括了发送邮件、接收邮件等功能。要发送普通邮件,你需要设置SMTP服务器地址、端口、用户名和密码,然后创建`Message`对象并设置发件人、收件人、主题和正文,最后...

    java接受电子邮件

    在Java编程环境中,接收电子邮件是一项常见的任务,通常通过JavaMail API来实现。JavaMail API是一个开源库,提供了处理SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等邮件服务的功能。...

    基于Java语言的电子邮件系统的研究.zip

    本研究主要关注的是如何使用Java语言来构建一个电子邮件系统。以下是对这个主题的详细讨论: 1. **JavaMail API**: JavaMail API是Java平台上的一个关键组件,用于处理邮件收发功能。它提供了丰富的接口和类,使得...

    Java Desktop System 电子邮件和日历用户指南.pdf

    ### Java Desktop System 电子邮件和日历用户指南 #### 电子邮件和日历概述 **Java Desktop System**中的**电子邮件和日历**是一款高级的个人信息管理系统,它整合了多种实用的应用程序,帮助用户高效地管理和组织...

    传智播客张孝祥java邮件开发_Java邮件开发源代码_16(完)

    JavaMail是Java平台上的一个开源库,它提供了一组接口和类,使得开发者能够方便地在Java应用中发送和接收电子邮件。这个API支持多种邮件协议,如SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和IMAP...

    java源码包---java 源码 大量 实例

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    Java写的邮件服务器.rar

    Java编写的邮件服务器是一种利用Java语言实现的网络应用程序,它允许用户通过Web浏览器与POP(Post Office Protocol)和SMTP(Simple Mail Transfer Protocol)服务器进行交互,处理电子邮件的发送和接收。...

    Spring进阶—如何用Java代码实现邮件发送

    在现代软件开发中,特别是在企业级应用中,邮件发送是一项常见的功能,比如在进销存系统中发送库存预警通知,或者在招聘网站上验证用户注册时的电子邮件地址。这些场景都需要通过编程的方式自动发送邮件。本文将探讨...

Global site tag (gtag.js) - Google Analytics