上の画像は、同じ黒から白への線形グラデーションに対応しており、中央のピクセルのグレー値は 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)オリジナル
BMP RGB (24 bpp)オリジナル
GIF (8 bpp)オリジナル