我需要从像素的 RGB 颜色中创建一个 Color 对象(读取 PNG 文件的 BufferedImage 对象,BufferedImage 颜色空间是 BufferedImage.TYPE_4BYTE_ABGR)。但是在某些颜色上存在问题,请参阅下面的代码和输出。我想这是某种色彩空间问题,但我不知道如何解决):感谢您的任何提示!
// imagine some great loop for x,y around the following code
int color = myImage.getRGB(x, y);
Color c = new Color(myImage.getRGB(x, y));
if(c.getRGB() != color)
System.out.println("fail " + color + " vs " + c.getRGB());
输出:
fail -116782582 vs -16119286
fail 0 vs -16777216
fail 117440511 vs -1
fail -1090519040 vs -16777216
fail 1488435127 vs -4737097
fail -1090453247 vs -16711423
还有更多。如果有帮助:例如透明度变黑。我猜新的 Color 对象使用的是 BufferedImage 以外的另一个色彩空间,但我不知道如何为新的 Color 对象设置色彩空间?还是 RGB 信息不足以重新创建颜色?