1
我想反轉bufferedimage的alpha,但不是反轉alpha,而是返回一個奇怪的黃色圖像。BufferedImage的反向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;
}
非常感謝! – Kyranstar