gpt4 book ai didi

java - 当我设置 setRGB 的值时,getRGB 返回不同的值。为什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:27 26 4
gpt4 key购买 nike

为什么这里我setRGB()用了三种RGB颜色(125, 126, 127),但是当getRGB时它返回另一个值,就是(125, 126, 128)。对于 (122, 126, 127),它返回 true (122, 126, 127)。为什么?和:输入:image.setRGB (0, 0, 5072962)//77 ----- 104 ----- 66 ------ 5072962输出:78 ------ 104 ------ 69 ------ 5138501(使用 rgb = (red << 16) | (green << 8) | blue;)

我的代码:

//77--------104--------66------5072962

final static int rgb = 5072962;

public static void main(String[] args) {

BufferedImage image = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);

//image.setRGB(0, 0, 5072962);
Color c = new Color(125, 126, 127);
image.setRGB(0, 0, c.getRGB());

File outputFile = new File("123.jpg");
try {
ImageIO.write(image, "jpg", outputFile);
File f = new File("123.jpg");
BufferedImage bi = ImageIO.read(f);
for (int h = 0; h < 1; h++) {
for (int w = 0; w < 1; w++) {
int pixel = bi.getRGB(w, h);
Color c2 = new Color(pixel);

int red = c2.getRed();
int green = c2.getGreen();
int blue = c2.getBlue();

int rgb = (red << 16) | (green << 8) | blue;
System.out.printf("%-8d%-8d%-8d%-8d", red, green, blue, rgb);
System.out.println("");
}
}
} catch (IOException ex) {
System.out.println("Error output File image!");
}

}

最佳答案

首先,您了解图像文件格式吗?在类似的情况下,我之前遇到过同样的问题。我想向您提出以下建议。

当您使用 jpg 进行图像写入操作以存储在您的存储中时,RGB 值会发生轻微变化,因为 jpg 格式是一种有损压缩格式文件格式。这种压缩允许您使用最佳空间来存储文件,但它不会存储您想要的 RGB 值的信息。

因此,如果文件格式对您来说不是大问题,那么只需使用 PNG 格式即可。 PNG 格式是一种无损压缩文件格式,因此您可以检索之前在程序中设置的 RGB 值。

希望对你有帮助。

关于java - 当我设置 setRGB 的值时,getRGB 返回不同的值。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44380101/

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