sunfruit[请访问http://www.fruitres.cn]

--我相信JAVA能走得更远 QQ:316228067

[原创]JAVA中图片上叠加文字的方法

    --sunfruit
    
    JDK:1.3.x以上
    功能:下面是一个简单在图片上面叠加文字的方法,有朋友如果有这方面的问题,就起个了解的作用

    代码如下:

import java.io.IOException;
import javax.imageio.ImageIO;
import java.io.File;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.util.Random;

/**
 * <p>Title: 图片叠加文字类</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author sunfruit
 * @version 1.0
 */
public class ImageAddWord {
    Random random=new Random(System.currentTimeMillis());
   
    BufferedImage buffImage=null;

    Graphics2D g=null;

    public ImageAddWord(int width, int height) {
        buffImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
    }

    public ImageAddWord()
    {
        this(32,32);
    }
   
    /**
     * 图片生成方法,如果需要在已有的图片叠加文字,需要先调用g.drawImage方法将图片绘制,再将文字绘制
     * @param str String 文字内容
     * @param ext String 文件后缀名 png或是jpg
     */
    public void drawWord(String str,String ext)
    {
        g=buffImage.createGraphics();
        /**
         如果要在已有的图片叠加文字,这里调用g.drawImage()该方法,绘制图片,酌情去掉下面的方法
         */
        g.setColor(Color.WHITE);//在已有的图片叠加文字时 该方法酌情添加
        g.fillRect(0, 0, buffImage.getWidth(), buffImage.getHeight());//在已有的图片叠加文字时 该方法酌情添加
        g.setColor(Color.BLACK);//设定文字颜色
        g.drawString(str,0,12);

        String filepath=System.getProperty("java.io.tmpdir") +random.nextInt(99999)+"." + ext;
        try {
            ImageIO.write(buffImage, ext,
                          new File(filepath));
            System.out.println("文件已经生成,路经为"+filepath);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public void setFont(Font font)
    {
        g.setFont(font);
    }

    public static void main(String[] args) {
        ImageAddWord imageAddWord=new ImageAddWord(132,16);
        String str="A B C";
        imageAddWord.drawWord(str,"png");

    }

}

posted on 2006-02-20 13:36 sunfruit 阅读(3760) 评论(0)  编辑  收藏 所属分类: JAVA SE & EE


只有注册用户登录后才能发表评论。


网站导航: