【发布时间】:2015-01-28 19:18:55
【问题描述】:
BufferedImage 类实现了 Transparency,它具有三个值:
不透明表示不透明。
半透明表示每个像素都有一个介于 0 和 1 之间的 Alpha 值。
BITMASK 表示每个像素要么不透明,要么完全透明。
我可以用 getTransparency() 方法检查这个值。就我而言,我有一个透明的 PNG 文件:
pic = ImageIO.read(new File(filename));
int transparency = pic.getTransparency(); // returns Transparency.TRANSLUCENT
现在我读到使用 Transparency.BITMASK 的图像可以比使用 Transparency.TRANSLUCENT 的图像绘制得更快,在我的情况下 BITMASK 就足够了。我只会用一种特定的颜色为所有透明像素着色,然后保存不透明的 png。
问题:如何通过仅将一种颜色定义为透明来从现有的 BufferedImage 创建一个具有 Transparency.BITMASK 的 BufferedImage 对象?
【问题讨论】:
标签: java png transparency bufferedimage bitmask