压缩图片,透明背景色变黑问题

L_chxu 2015-05-26 10:21:35
用BufferedImage、JPEGImageEncoder压缩图片,背景为透明的图片压缩后背景变成黑色,其他图片压缩却正常,这是怎么回事,有什么解决的方法吗?图片需要与原图片尺寸一直,不能缩小图片长宽。
原图:

压缩后:


BufferedImage tag = new BufferedImage((int) newWidth,(int) newHeight,
BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(img.getScaledInstance(newWidth, newHeight,
Image.SCALE_SMOOTH), 0, 0, null);
FileOutputStream out = new FileOutputStream(outputFile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(tag);
out.close();
...全文
1461 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
finemi 2015-05-27
  • 打赏
  • 举报
回复
引用 4 楼 L_chxu 的回复:
[quote=引用 3 楼 finemi 的回复:] http://blog.csdn.net/monitor1394/article/details/6087583 这里很详细
那个方法压缩比例不大,而且边框处理的不太好,有没有像JPEGImageWriteParam的方法处理png格式的图片?[/quote] 真不知道了,这方面我也没怎么研究。 本身PNG压缩都还算比较有点技术含量的,还有好多专门做ONG压缩的网站呢,比如TinyPNG,他那压缩一般都60%以上超牛逼。 你再找找网上有没其他例子或者开源库算了
L_chxu 2015-05-27
  • 打赏
  • 举报
回复
引用 3 楼 finemi 的回复:
http://blog.csdn.net/monitor1394/article/details/6087583 这里很详细
那个方法压缩比例不大,而且边框处理的不太好,有没有像JPEGImageWriteParam的方法处理png格式的图片?
finemi 2015-05-26
  • 打赏
  • 举报
回复
L_chxu 2015-05-26
  • 打赏
  • 举报
回复
引用 1 楼 finemi 的回复:
透明图片有4个通道:ARGB PNG不能转换为JPG压缩的,JPG是不带透明色的,不然你找一张带透明色的JPG格式图片出来。。。。
那png的图片该如何压缩成png格式的?
finemi 2015-05-26
  • 打赏
  • 举报
回复
透明图片有4个通道:ARGB PNG不能转换为JPG压缩的,JPG是不带透明色的,不然你找一张带透明色的JPG格式图片出来。。。。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧