Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改预定义十六进制颜色的alpha?_Java_Colors_Hex_Transparency - Fatal编程技术网

Java 如何更改预定义十六进制颜色的alpha?

Java 如何更改预定义十六进制颜色的alpha?,java,colors,hex,transparency,Java,Colors,Hex,Transparency,我想知道如果给定十六进制色码,一个人如何改变颜色的alpha透明度。例如,如果给定 Color.red.getRGB() 我怎样才能把它的alpha改成0x80 为了将其放在上下文中,我正在研究一种静态方法来着色BuffereImage,方法是从给定的图像创建一个图形设备,并使用该设备渲染一个半透明的遮罩,处理图形,然后返回图像。这是可行的,但您必须在给定的十六进制颜色代码中自己定义alpha。我想给一个颜色对象,并在0和1.0之间加倍以确定着色的强度。以下是我目前的代码: public sta

我想知道如果给定十六进制色码,一个人如何改变颜色的alpha透明度。例如,如果给定
Color.red.getRGB()
我怎样才能把它的alpha改成0x80

为了将其放在上下文中,我正在研究一种静态方法来着色BuffereImage,方法是从给定的图像创建一个图形设备,并使用该设备渲染一个半透明的遮罩,处理图形,然后返回图像。这是可行的,但您必须在给定的十六进制颜色代码中自己定义alpha。我想给一个颜色对象,并在0和1.0之间加倍以确定着色的强度。以下是我目前的代码:

public static Image tintImage(Image loadImg, int color) {
    Image gImage = loadImg;
    Graphics2D g = gImage.image.createGraphics();
    Image image = new Image(new BufferedImage(loadImg.width, loadImg.height, BufferedImage.TYPE_INT_ARGB));
    for(int x = 0; x < loadImg.width; x++) {
        for(int y = 0; y < loadImg.height; y++) {
            if(loadImg.image.getRGB(x, y) >> 24 != 0x00) {
                image.image.setRGB(x, y, color);
            }
        }
    }
    g.drawImage(image.image, 0, 0, null);
    g.dispose();

    return gImage;
}
公共静态图像着色图像(图像加载img,int-color){
图像gImage=loadImg;
Graphics2D g=gImage.image.createGraphics();
图像图像=新图像(新的buffereImage(loadImg.width、loadImg.height、buffereImage.TYPE_INT_ARGB));
对于(int x=0;x>24!=0x00){
image.image.setRGB(x,y,颜色);
}
}
}
g、 drawImage(image.image,0,0,null);
g、 处置();
返回gImage;
}

您可以用较低的alpha值从旧颜色构建新颜色

Color cNew = new Color(cOld.getRed(), cOld.getGreen(), cOld.getBlue(), 0x80);

使用<代码>颜色(int r,int g,int b,int a)< /c>构造函数。

也考虑<代码> ReCaleOP> <代码>,查看,调整图像的色带。