【发布时间】:2013-04-05 10:47:15
【问题描述】:
我在 java 中设置 buffredimage 的 rgb 的 alpha。 此代码更改 alpha 值,但保存文件后我无法检索相同的值。 如何克服这个问题。
// ================ Code for setting alpha ===============
int alpha=140;
// alpha value to set in rgb
int b=alpha<<24;
b=b|0x00ffffff;
ialpha.setRGB(0, 0,ialpha.getRGB(0, 0)&b);
// ialpha is a bufferedimage of type TYPE_INT_ARGB
ImageIO.write(ialpha, "png", new File("C:/newimg.png"));
System.out.println("\nFile saved !");
// ================ Code for getting alpha ===============
int val=(ialpha.getRGB(0, 0)&0xff000000)>>24;
if(val<0)
val=256+val;
System.out.println("Returned alpha value:"+val);
这只是返回 255 作为 alpha 值。它不返回我设置的值,即 140。
请帮我找回我之前设置的 alpha 值。
【问题讨论】:
-
为什么要使用位运算?? java有一些漂亮的功能来设置rgb创建新颜色等等。
-
this 的可能重复项。你可以在这里找到你要找的东西。
标签: java image bufferedimage alpha rgba