-
1.应用一
-
//测试生成图片
-
public void test01(){
-
int width =
100;
-
int height =
100;
-
String s =
"你好";
-
-
File file =
new File(
"D:/image.jpg");
-
-
Font font =
new Font(
"Serif", Font.BOLD,
10);
-
//创建一个画布
-
BufferedImage bi =
new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
-
//获取画布的画笔
-
Graphics2D g2 = (Graphics2D)bi.getGraphics();
-
-
//开始绘图
-
g2.setBackground(Color.WHITE);
-
g2.clearRect(
0,
0, width, height);
-
g2.setPaint(
new Color(
0,
0,
255));
-
g2.fillRect(
0,
0,
100,
10);
-
g2.setPaint(
new Color(
253,
2,
0));
-
g2.fillRect(
0,
10,
100,
10);
-
g2.setPaint(Color.red);
-
-
-
FontRenderContext context = g2.getFontRenderContext();
-
Rectangle2D bounds = font.getStringBounds(s, context);
-
double x = (width - bounds.getWidth()) /
2;
-
double y = (height - bounds.getHeight()) /
2;
-
double ascent = -bounds.getY();
-
double baseY = y + ascent;
-
-
//绘制字符串
-
g2.drawString(s, (
int)x, (
int)baseY);
-
-
try {
-
//将生成的图片保存为jpg格式的文件。ImageIO支持jpg、png、gif等格式
-
ImageIO.write(bi,
"jpg", file);
-
}
catch (IOException e) {
-
System.out.println(
"生成图片出错........");
-
e.printStackTrace();
-
}
-
-
}
-
2.应用二:生成背景透明的图片
-
首先jpg格式的图片,支持RGB,无法实现背景透明
-
png与gif支持RGB和alpha属性,可以生成透明图片
-
-
int width =
400;
-
int height =
300;
-
-
// 创建BufferedImage对象
-
BufferedImage image =
new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
-
// 获取Graphics2D
-
Graphics2D g2d = image.createGraphics();
-
-
// ---------- 增加下面的代码使得背景透明 -----------------
-
image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
-
g2d.dispose();
-
g2d = image.createGraphics();
-
// ---------- 背景透明代码结束 -----------------
-
-
-
// 画图
-
g2d.setColor(
new Color(
255,
0,
0));
-
g2d.setStroke(
new BasicStroke(
1));
-
g2d.draw
-
//释放对象
-
g2d.dispose();
-
// 保存文件
-
ImageIO.write(image,
"png",
new File(
"c:/test.png"));