2012-05-08 137 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

謝謝你的解釋,亞當!不幸的是,我看不出你或埃裏克森是否更快,會接受埃裏克森的答案,因爲它也提供瞭解決這個問題的辦法,但你的也是非常有幫助的! –