上面的图像对应于相同的黑白线性渐变,中间的像素具有50%的灰度值(~127)。
代码
BufferedImage im = ImageIO.read(filename);
int p = im.getRGB(im.getWidth()/2, im.getHeight()/2);
System.out.printf("%x\n",p);
输出BMP-rgb和GIF的预期值(ff7f7f7f
),但对于第一个(BMP灰度),我得到ffbbbbbb
。似乎只应用(强)伽马校正,仅在这种情况下。为什么呢?
BMP灰度(8 bpp)original
BMP rgb(24 bpp)original
GIF(8 bpp)original