09/01/18 04:22:38 vJhZJw4+0
V2Cスレから持ってきた面白いネタ
PNG のγ値(gAMA チャンク)が無視される。
URLリンク(tmp.2chan.net) が
URLリンク(ranobe.com) の右側に見えたらアウト。
これはこれで面白いので、γ値を無視するかどうかをオプションで決められるというのもアリ。
同様の方法で作った画像。非メガネだとアウト。
URLリンク(upload.jpn.ph)
PNG は8バイトのシグネチャ(89 50 4E 47 0D 0A 1A 0A)に続いて、複数のチャンクが続く。
各チャンクは以下の構造を取る。
各値はビッグエンディアンで格納されている。
4バイト : チャンクサイズ(実データのみのサイズ)
4バイト : チャンク名(マジックナンバー)
Xバイト : データ(サイズはチャンクサイズで指定されたバイト数に等しい)
4バイト : チャンク名+データの CRC-32 値
gAMA チャンクは4バイトの情報を持つチャンク。
以下の構造を持っている。
00 00 00 04 : チャンクサイズ
67 41 4d 41 : gAMA
00 00 09 c4 : 100000/γ値(この例では2500、つまりγ値は40)
c6 ee dd ad : gAMA を含む8バイトの CRC-32 値
gAMA チャンクは必ず PLTE チャンク(パレット)や IDAT チャンク(画像データ)より
前になければならない。
この情報を使って自分で補正する必要があるのか、
それともJavaの機能で補正できるのかは知りません。