0

我想知道单个像素的 alpha 通道如何为-1?我正在浏览 PNG 图像的每个像素(加载在缓冲图像中,ARGB 类型)。许多 alpha 值是 -1(其他值大于零) - 这怎么可能?值不应该在 0 到 255 之间吗?代码如下。感谢您的任何提示!

// imagine some great loop for x and y before this code
int a = (scaledImage.getRGB(x, y) & 0xff000000) >> 24; // kill all bits except for the first 8, shift 24 to the right to get them
System.out.println("" + a); 
4

2 回答 2

2

您遇到了符号扩展问题。请改用无符号移位运算符>>>

于 2012-05-08T20:09:04.640 回答
0

如果将其视为无符号整数,则 -1 = 0xFF = 255。这只是解释 alpha 通道 255 值的另一种方式。

于 2012-05-08T20:09:31.043 回答