java color透明度,改变java中透明像素的颜色

Now i am able to apply pixel of another image to source image pixel of pg to m. but problem is that i m loosing gradient or fading effect.

public static void main(String[] args){

try {

BufferedImage image = ImageIO.read(new File("c:\\m.png"));

BufferedImage patt = ImageIO.read(new File("c:\\pg.png"));

int f = 0;

int t = 0;

int n = 0;

BufferedImage bff = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);

for (int y = 0; y < image.getHeight(); ++y) {

for (int x = 0; x < image.getWidth(); ++x) {

int argb = image.getRGB(x, y);

int nrg = patt.getRGB(x, y);

if(((argb>>24) & 0xff) == 0) {

bff.setRGB(x, y, (255<<24));

} else {

bff.setRGB(x, y, nrg);

}

}

}

System.out.println("Trans : " + t + " Normal : " + n);

File outputfile = new File("c://imagetest.png");

ImageIO.write(bff, "png", outputfile);

} catch (IOException ex) {

}

}

thanks.

解决方案

0xff000000 is opaque black, 0x00000000 is completely transparent.

What is 0 (the colour you chose)?

Yes, it's transparent.

Try 0xff000000 or even better: argb ^ 0xff000000, which just changes the transparency, instead.

if(((argb>>24) & 0xff) == 0) {

bff.setRGB(x, y, argb ^ 0xff000000);

} else {

bff.setRGB(x, y, argb);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值