package com.test.testImage;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class Graphics2DTest {
public static void main(String[] args) {
try {
String text = "文字居中";
int width = 500;
int height = 400;
// 創建BufferedImage對象
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
// 獲取Graphics2D
Graphics2D g2d = image.createGraphics();
// 畫圖
g2d.setBackground(new Color(255,255,255));
//g2d.setPaint(new Color(0,0,0));
g2d.setColor(Color.red);
g2d.clearRect(0, 0, width, height);
Font font=new Font("宋體",Font.PLAIN,64);
g2d.setFont(font);
// 抗鋸齒
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// 計算文字長度,計算居中的x點坐標
FontMetrics fm = g2d.getFontMetrics(font);
int textWidth = fm.stringWidth(text);
int widthX = (width - textWidth) / 2;
// 表示這段文字在圖片上的位置(x,y) .第一個是你設置的內容。
g2d.drawString(text,widthX,100);
// 釋放對象
g2d.dispose();
// 保存文件
ImageIO.write(image, "jpg", new File("D:/test.jpg"));
}
catch(Exception ex) {
ex.printStackTrace();
}
}
}