2
我在设置buffredimage的rgb的alpha。 此代码更改alpha值,但保存文件后无法检索相同的值。 如何解决这个问题。更改rgb位的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创建新的颜色等等。 – 2013-04-05 10:54:57
[this]的可能重复(http://stackoverflow.com/questions/6734171/set-rgb-and-alpha-component-value-of-a-color?rq = 1)。你可能会发现你在这里寻找什么。 – Maximin 2013-04-05 11:23:36