gpt4 book ai didi

java - 更改像素的 alpha 值

转载 作者:行者123 更新时间:2023-12-01 18:50:07 27 4
gpt4 key购买 nike

我正在尝试更改像素的 alpha 值以使图像半透明。这是我的代码:

for(int x=0;x<image1.getWidth();x++) {
for(int y=0;y<image1.getHeight();y++) {
int rgb = image1.getRGB(x, y);

rgb = rgb | 0x000000ff; // make the image blue.
rgb = rgb & 0x33ffffff; // make the image transparent.
System.out.println("before: " + Integer.toHexString(rgb));

image1.setRGB(x, y, rgb);
int now_rgb= image1.getRGB(x, y);
System.out.println("after: " + Integer.toHexString(now_rgb));
}
}

输出是这样的:

before: 331b1aff
after: ff1b1aff
before: 331918ff
after: ff1918ff
before: 331e1bff
after: ff1e1bff
before: 332623ff
after: ff2623ff
before: 332e29ff
after: ff2e29ff

如您所见,setRGB 似乎省略了 alpha 值并将其设置为“ff”。我该如何解决这个问题,为什么会出现这种情况?

最佳答案

这可能是因为您的 BufferedImage 颜色模型不支持 Alpha,或者可能只使用一位 Alpha。

您从哪里获得图像?它的颜色模型也是ARGB吗?使用image.getColorModel()。hasAlpha()去检查。如果没有,请确保在创建图像时它具有适当的颜色模型,如果无法更改,请使用所需的颜色模型创建一个新图像并首先复制源图像。

关于java - 更改像素的 alpha 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16160750/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com