【发布时间】:2022-02-05 18:32:19
【问题描述】:
我有一个 Java 程序,它可以创建仅包含黑色像素和 100% 透明像素的复合 png 图像。我试图尽可能减小这些复合材料的大小,我注意到 ImageIO.write 总是输出 32 位 PNG。考虑到图像总共只有两种颜色,我想将它们保存为 8 位,但我认为没有办法使用标准 Java 函数来做到这一点。
有谁知道任何可以从 BufferedImage 创建 8 位 png 的预构建函数?也欢迎任何其他减小这些 png 大小的建议!
【问题讨论】:
-
如果将它们保存为 GIF 会怎样? (我问是因为它仅限于 256 种颜色。)
-
平均而言,32 位 PNG 比包含相同像素的 GIF 小。
-
这确实提醒了我,您实际上可以将 GIF 中的索引颜色数量减少到 2... 不过,我不确定如果没有外部函数我将如何实现这一点。
-
图片是如何加载/使用的?通过您控制的其他 Java 代码?
-
是的,图像是在我自己的程序中生成的,变成一个空白的 BufferedImage。
标签: java png bufferedimage