Java 阿尔法通道怎么可能是-1?

Java 阿尔法通道怎么可能是-1?,java,alpha,Java,Alpha,我想知道单个像素的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 exc

我想知道单个像素的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); 

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

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

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