文字生成图片(java)


 
 
  1. 1.应用一
  2. //测试生成图片
  3. public void test01(){
  4. int width = 100;
  5. int height = 100;
  6. String s = "你好";
  7. File file = new File( "D:/image.jpg");
  8. Font font = new Font( "Serif", Font.BOLD, 10);
  9. //创建一个画布
  10. BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
  11. //获取画布的画笔
  12. Graphics2D g2 = (Graphics2D)bi.getGraphics();
  13. //开始绘图
  14. g2.setBackground(Color.WHITE);
  15. g2.clearRect( 0, 0, width, height);
  16. g2.setPaint( new Color( 0, 0, 255));
  17. g2.fillRect( 0, 0, 100, 10);
  18. g2.setPaint( new Color( 253, 2, 0));
  19. g2.fillRect( 0, 10, 100, 10);
  20. g2.setPaint(Color.red);
  21. FontRenderContext context = g2.getFontRenderContext();
  22. Rectangle2D bounds = font.getStringBounds(s, context);
  23. double x = (width - bounds.getWidth()) / 2;
  24. double y = (height - bounds.getHeight()) / 2;
  25. double ascent = -bounds.getY();
  26. double baseY = y + ascent;
  27. //绘制字符串
  28. g2.drawString(s, ( int)x, ( int)baseY);
  29. try {
  30. //将生成的图片保存为jpg格式的文件。ImageIO支持jpg、png、gif等格式
  31. ImageIO.write(bi, "jpg", file);
  32. } catch (IOException e) {
  33. System.out.println( "生成图片出错........");
  34. e.printStackTrace();
  35. }
  36. }

 
 
  1. 2.应用二:生成背景透明的图片
  2. 首先jpg格式的图片,支持RGB,无法实现背景透明
  3. png与gif支持RGB和alpha属性,可以生成透明图片
  4. int width = 400;
  5. int height = 300;
  6. // 创建BufferedImage对象
  7. BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
  8. // 获取Graphics2D
  9. Graphics2D g2d = image.createGraphics();
  10. // ---------- 增加下面的代码使得背景透明 -----------------
  11. image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
  12. g2d.dispose();
  13. g2d = image.createGraphics();
  14. // ---------- 背景透明代码结束 -----------------
  15. // 画图
  16. g2d.setColor( new Color( 255, 0, 0));
  17. g2d.setStroke( new BasicStroke( 1));
  18. g2d.draw
  19. //释放对象
  20. g2d.dispose();
  21. // 保存文件
  22. ImageIO.write(image, "png", new File( "c:/test.png"));



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值