--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");
}
}