gpt4 book ai didi

java - Bufferedimage 设置 RGB 不起作用 - JAVA

转载 作者:行者123 更新时间:2023-12-02 04:43:47 28 4
gpt4 key购买 nike

我有以下问题:我在java中处理图像。我设置颜色像素,然后保存图像。但是如果我将此图像加载到程序中。像素具有不同的颜色!代码:

BufferedImage img = loadImage();
.
.
//new image for drawing
BufferedImage newImg = new BufferedImage(img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) newImg.getGraphics();

//get pixel color
int pixel = img.getRGB(0, 0);

//parsing color
int red = (pixel >> 16) & 0xff;
int green = (pixel >> 8) & 0xff;
int blue = (pixel) & 0xff;

//real drawing
g2.setColor(new Color(red, green, blue));
g2.drawLine(0, 0, 0, 0); // COLOR IS R: 55, G: 54 B: 53

//saving
ImageIO.write(newImg, "jpg", outputfile);

此后,我运行另一个可以读取像素颜色的程序..

命令是相同的..

如果我检查新图像的颜色,rgb 为:R 52,G:48 B:81

我设置了R:55,G:53,B:53R 52,G:48 B:81

哪里可能有问题?

感谢您的建议。

最佳答案

这是因为 Jpeg 类型

Jpeg值不会离散保存,但Jpeg将图片的RGB值保存为函数。

不要使用 jpeg,而使用 png 格式,并查看 setRGB() 的工作原理。

所以将您的代码替换为下面的

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

关于java - Bufferedimage 设置 RGB 不起作用 - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29868513/

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