【发布时间】:2014-02-16 03:49:06
【问题描述】:
我正在尝试反转缓冲图像的 alpha,但不是反转 alpha,而是返回一个奇怪的黄色图像。
这是倒置前的原图
这是它返回的内容:
public void invertAlpha(BufferedImage lightmap){
int[] values = (int[])lightmap.getRaster().getDataElements(0, 0, lightmap.getWidth(), lightmap.getHeight(), null);
for(int i = 0; i < values.length; i += 1) values[i] = (byte)(invertAlphaofPixel(values[i]));
lightmap.getRaster().setDataElements(0, 0, lightmap.getWidth(), lightmap.getHeight(), values);
}
public int invertAlphaofPixel(int value){
byte R = (byte) (value & 255);
byte G = (byte) ((value >> 8) & 255);
byte B = (byte) ((value >> 16) & 255);
byte A = (byte) ((value >> 24) & 255);
A = (byte) (A ^ 0xff); //basically A = 255 - A I believe?
return A | R | G |B;
}
【问题讨论】:
标签: java graphics colors bufferedimage