我有这张图片:
我想在int[]
. 到目前为止,这是我为 PNG 图像所做的:
File f = new File("t.jpg");
BufferedImage img = ImageIO.read(f);
int[] ib = img.getRGB(0, 0, img.getWidth(), img.getHeight(), null, 0, img.getWidth());
Color c = new Color(ib[0]);
System.out.println(c.getRed() + " " + c.getGreen() + " " + c.getBlue());
但是在这里我得到了这个输出:255 128 128
这是出乎意料的,因为我清楚地看到(并且已经在几个图像编辑器中验证了)(0,0)处的像素具有这些值255 255 255
。
我注意到返回的类型img.getType()
等于TYPE_3BYTE_BGR所以我猜这是幕后发生的解码问题,但我不知道如何解决它(或者更清楚地了解正在发生的事情)。
有人会对如何正确解码这种类型有建议吗?