首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用java的ImageIO保存优化过的png图像?

如何用java的ImageIO保存优化过的png图像?
EN

Stack Overflow用户
提问于 2010-04-22 00:48:39
回答 1查看 3K关注 0票数 4

我用java生成了很多图像,并通过ImageIO.write方法保存它们,如下所示:

代码语言:javascript
运行
复制
final BufferedImage img = createSomeImage();
ImageIO.write( img, "png", new File( "/some/file.png" );

我对结果很满意,直到谷歌的firefox插件“页面速度”告诉我,如果我优化图像,我可以节省高达60%的大小。这些图片是二维码,每个大小约为900B,firefox插件优化版本约为300B。我想直接从java保存这种经过优化的300B图像。

所以我的问题又来了:如何用java的ImageIO保存优化过的png图像?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-22 01:45:17

使用PngEncoderB将BufferedImage转换为PNG编码的字节数组。

您可以对其应用滤镜,这有助于为图像做好更好的优化准备。这就是OptiPNG所做的,只有OptiPNG会计算哪个过滤器会得到最好的压缩效果。

您可能必须尝试应用每个筛选器,以查看哪个筛选器更适合您。对于2位颜色,我认为唯一有帮助的滤镜是"up",所以我猜这就是应该使用的滤镜。

将图像转换为PNG编码的字节数组后,可以直接将其写入文件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2684866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档