生成图片_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 生成图片

生成图片

 2013/7/29 13:10:32  javaWolf_1  程序员俱乐部  我要评论(0)
  • 摘要:生成图片1.应用一//测试生成图片publicvoidtest01(){intwidth=100;intheight=100;Strings="你好";Filefile=newFile("D:/image.jpg");Fontfont=newFont("Serif",Font.BOLD,10);//创建一个画布BufferedImagebi=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB)
  • 标签:图片

生成图片

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='#'" ?

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

发表评论
用户名: 匿名