我有一种情况需要反转 a 的 Alpha 通道VolatileImage
我目前的实现很明显,但很慢;
public BufferedImage invertImage(VolatileImage v) {
BufferedImage b = new BufferedImage(v.getWidth(), v.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
Graphics g = b.getGraphics();
g.drawImage(v, 0, 0, null);
for(int i = 0; i < b.getWidth(); i++) {
for(int(j = 0; j < b.getHeight(); j++) {
Color c = new Color(b.getRGB(i, j, true));
c = new Color(c.getRed(), c.getGreen(), c.getBlue(), 255 - c.getAlpha());
b.setRGB(i, j, c.getRGB());
}
}
return b;
}
这工作正常,但非常缓慢。我有大图像,需要快速。我已经搞砸了,AlphaComposite
但无济于事——据我所知,这并不是一个真正的堆肥问题。
鉴于这255 - x
相当于x & 0xff
for 0 <= x < 256
,我能不能以某种方式在 alpha 通道上进行整体异或?