最近用到Java动态生成背景透明的图片功能,从gif和png中选择了png格式,自动添加链接地址:http://www.my400800.cn 去网站上的图片中。现把搜索结果总结如下:

1. 生成png图片

int width = 400;

int height = 300;

// 创建BufferedImage对象

BufferedImage image = new BufferedImage(width, height,     BufferedImage.TYPE_INT_RGB);

// 获取Graphics2D

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

int width = 400;

int height = 300;

// 创建BufferedImage对象

BufferedImage image = new BufferedImage(width, height,     BufferedImage.TYPE_INT_RGB);

// 获取Graphics2D

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

这只是绘制图形的代码,其背景是黑色的,如何才能背景透明呢?继续搜索,没有得到结果,不过搜出以下代码,它只是把自己绘制的图形设置为透明或半透明,背景并不透明,如下:

2. 绘制半透明图形

int width = 400;

int height = 300;

// 创建BufferedImage对象

BufferedImage image = new BufferedImage(width, height,     BufferedImage.TYPE_INT_RGB);

// 获取Graphics2D

Graphics2D g2d = image.createGraphics();

// 设置透明度

g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1.0f));  // 1.0f为透明度 ,值从0-1.0,依次变得不透明

// 画图

g2d.setColor(new Color(255,0,0));

g2d.setStroke(new BasicStroke(1));

g2d.draw

//释放对象

//透明度设置 结束

g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));

g2d.dispose();

// 保存文件

ImageIO.write(image, "png", new File("c:/test.png"));

这样绘制的图形应该说是前景透明的,背景依然是黑色,:(

网上没有看到有益的代码,在csdn上一位说自己实现了,但却没有说怎么实现的,没办法只能自己摸索了,耗了半个多小时,几乎查看了BufferedImage 和Graphics2D 所有方法和属性,终于找到了解决方案,只不过是增加两行代码而已,如下:

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

java生成背景透明的png图片,Java生成背景透明的png图片相关推荐

  1. Java将图片处理成背景透明的圆形图片

    /** @author Michael Feng* @date 2017年9月4日*/import java.awt.AlphaComposite; import java.awt.Color; im ...

  2. java 生成二维码,并跟其他图合成新图 图片添加水印

    效果 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artif ...

  3. java可视化界面背景图_Java界面:java设置背景图片

    Java初学者,制作的第一个又背景图片的页面,虽然有点丑.. 1.在JAVA文件中创建一个Folder(文件夹),把准备好的图片复制粘贴进去,在出现如下图片时点击ok,最好把图片名字修改的简单一点. ...

  4. Java生成png文件字体不清晰,java操作字体生成png图片,该怎么解决

    java操作字体生成png图片 java生成png图片,前提不能固定图片大小,根据文字和文字字号 自动生成png图片. 网上找了一些方法都是需要固定图片大小然后生成图片的.有没有办法解决自动生成文字p ...

  5. java生成二维码(在图片上生成二维码(二维码带logo)并且在图片上添加文字标签)

    1pom.xml <!--生成二维码--> <dependency><groupId>cn.hutool</groupId><artifactId ...

  6. JDBC MySQL Servlet Java入门编写时的一些问题(html背景图片设置、input=date与Java和数据库之间的通信、SQL的基础语句与变量的编写)

    问题内容见标题,这些问题为博主亲身经历,当然已经解决了,虽然问题不大,自己百度.CSDN可以解决,但是很烦人.消磨精神 这里作者自己总结一下,留给有缘人看一下吧 库你急哇,哈集美马戏特~~ 好久没写了 ...

  7. java生成小图片_JAVA生成缩略小图片类

    JAVA生成缩略小图片类 java.awt.image.BufferedImage是缓冲图片类主要将生成的图片对象缓冲起来:javax.imageio.ImageIO是图片IO控制类,可以将缓冲图片对 ...

  8. java 生成证书图片_java生成自定义证书图片1 - 制作证书word模板

    最近做项目遇到一个需求,生成指定数据的证书图片(比如毕业证,在空的模板中输入自定义的姓名.日期等信息),尝试了许多方法,最终完美地实现了这个需求. 以下内容为制作证书图片的第一步,制作证书word模板 ...

  9. java word导出带背景_Java 用Freemarker完美导出word文档(带图片)

    前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject ...

  10. java代码实现二维码图片的生成和解析

    2015年什么最火,二维码,2016年随处可见的是什么,二维码.二维码的历史我们就不探究了,今天分享的是利用Java代码实现二维码的生成和解析.Java代码生成和解析二维码涉及到的东西比较多,还需要引 ...

最新文章

  1. 15.用PHP写出显示客户端IP与服务器IP的代码,如何防止用户使用代理的情况?[添加更多详情]...
  2. CTFshow 命令执行 web53
  3. Python MySQLdb模块连接操作mysql数据库实例_python
  4. KCL:声明式的云原生配置策略语言
  5. java位操作_关于java按位操作运算
  6. Linux编程之epoll
  7. 网络安全系列之二十五 配置SSH
  8. OpenCV-高斯滤波cv::GaussianBlur
  9. knn约会_出色的在线约会预订系统应具备的5个功能
  10. 20160601 工作总结
  11. java模拟网银登录_Java模拟网上银行业务
  12. 机械革命bios升级_¥1500买6年前神舟老战神,3内存+4硬盘升级潜力强,鲁大师15万!...
  13. Siebel命令行修改LDAP
  14. 麒麟座MINI板串口乱码(HAL库晶振配置)
  15. java打印 X XX XXX XXXX
  16. 猫狗叫声模拟器小程序源码
  17. 汇编语言 标志位介绍
  18. 【1312】【例3.4】昆虫繁殖
  19. 字母大小写转换在线工具
  20. (JLK105D)中山爆款LED恒流电源芯片方案

热门文章

  1. word写论文时给公式编号
  2. ArcGIS实现全国人口普查数据可视化以及热力图
  3. Chrome谷歌浏览器无需插件设置夜间模式,黑色主题
  4. 自定义 Chrome (谷歌浏览器) 主题
  5. 视频剪辑软件产品调研分析
  6. Camtasia2020注册机顶级屏幕录像视频编辑软件安装教程
  7. 中小学python教材电子版_【python爬虫】中小学人教版教材下载实践
  8. DVWA安装教程(懂你的不懂·详细)
  9. 在EXCEL中玩扫雷
  10. CAXA2016破解版