2012-05-08 91 views
0

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

// 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); 

回答

2

您正遇到签名扩展问题。改为使用无符号移位运算符>>>

+0

谢谢您也提供解决方案的问题! –

0

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

+0

谢谢你的解释,亚当!不幸的是,我看不出你或埃里克森是否更快,会接受埃里克森的答案,因为它也提供了解决这个问题的办法,但你的也是非常有帮助的! –