java生成背景透明的png图片,Java生成背景透明的png图片
最近用到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图片相关推荐
- Java将图片处理成背景透明的圆形图片
/** @author Michael Feng* @date 2017年9月4日*/import java.awt.AlphaComposite; import java.awt.Color; im ...
- java 生成二维码,并跟其他图合成新图 图片添加水印
效果 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artif ...
- java可视化界面背景图_Java界面:java设置背景图片
Java初学者,制作的第一个又背景图片的页面,虽然有点丑.. 1.在JAVA文件中创建一个Folder(文件夹),把准备好的图片复制粘贴进去,在出现如下图片时点击ok,最好把图片名字修改的简单一点. ...
- Java生成png文件字体不清晰,java操作字体生成png图片,该怎么解决
java操作字体生成png图片 java生成png图片,前提不能固定图片大小,根据文字和文字字号 自动生成png图片. 网上找了一些方法都是需要固定图片大小然后生成图片的.有没有办法解决自动生成文字p ...
- java生成二维码(在图片上生成二维码(二维码带logo)并且在图片上添加文字标签)
1pom.xml <!--生成二维码--> <dependency><groupId>cn.hutool</groupId><artifactId ...
- JDBC MySQL Servlet Java入门编写时的一些问题(html背景图片设置、input=date与Java和数据库之间的通信、SQL的基础语句与变量的编写)
问题内容见标题,这些问题为博主亲身经历,当然已经解决了,虽然问题不大,自己百度.CSDN可以解决,但是很烦人.消磨精神 这里作者自己总结一下,留给有缘人看一下吧 库你急哇,哈集美马戏特~~ 好久没写了 ...
- java生成小图片_JAVA生成缩略小图片类
JAVA生成缩略小图片类 java.awt.image.BufferedImage是缓冲图片类主要将生成的图片对象缓冲起来:javax.imageio.ImageIO是图片IO控制类,可以将缓冲图片对 ...
- java 生成证书图片_java生成自定义证书图片1 - 制作证书word模板
最近做项目遇到一个需求,生成指定数据的证书图片(比如毕业证,在空的模板中输入自定义的姓名.日期等信息),尝试了许多方法,最终完美地实现了这个需求. 以下内容为制作证书图片的第一步,制作证书word模板 ...
- java word导出带背景_Java 用Freemarker完美导出word文档(带图片)
前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject ...
- java代码实现二维码图片的生成和解析
2015年什么最火,二维码,2016年随处可见的是什么,二维码.二维码的历史我们就不探究了,今天分享的是利用Java代码实现二维码的生成和解析.Java代码生成和解析二维码涉及到的东西比较多,还需要引 ...
最新文章
- 15.用PHP写出显示客户端IP与服务器IP的代码,如何防止用户使用代理的情况?[添加更多详情]...
- CTFshow 命令执行 web53
- Python MySQLdb模块连接操作mysql数据库实例_python
- KCL:声明式的云原生配置策略语言
- java位操作_关于java按位操作运算
- Linux编程之epoll
- 网络安全系列之二十五 配置SSH
- OpenCV-高斯滤波cv::GaussianBlur
- knn约会_出色的在线约会预订系统应具备的5个功能
- 20160601 工作总结
- java模拟网银登录_Java模拟网上银行业务
- 机械革命bios升级_¥1500买6年前神舟老战神,3内存+4硬盘升级潜力强,鲁大师15万!...
- Siebel命令行修改LDAP
- 麒麟座MINI板串口乱码(HAL库晶振配置)
- java打印 X XX XXX XXXX
- 猫狗叫声模拟器小程序源码
- 汇编语言 标志位介绍
- 【1312】【例3.4】昆虫繁殖
- 字母大小写转换在线工具
- (JLK105D)中山爆款LED恒流电源芯片方案