2011-12-05 12 views
0

アルファの254のピクセルを持つPNG画像があります。これらのピクセルの色は RGBA {183,221,129,254}です(javascriptの表記ではありません)。getImageDataのアルファに関連するPNG RGB変換ですか?

私は(キャンバス上の)getImageDataを使用してChromeで私の画素を読み出す際にR、G及びB成分が183、221および129

であるが、それのGimpでR、GおよびBの値を確認することができ182,220および128に修正される(Aは正しく254である)。

これは標準化された変換ですか、バグですか?それが正常であれば、PNGのものからgetImageDataによって与えられたRGB値を予測するための正確な公式をどこで見つけることができますか?

答えて

1

これはほぼ確実にgamma correctionに起因しています。要するに、ほとんどのWebブラウザは、画像に含まれる色空間を無視し、デフォルトの色空間を使用します(大量のペナルティ、特にFlashなどのプラグインを使用せずに色空間を使用することはできません)。

あなたが本当に古いブラウザ(Opera 6やSafari 1など)について気にしない限り、ガンマ情報なしでイメージを保存することができます。

+0

これは興味深い読みですが、ガンマ情報を削除してもChromeがデータを変更するのを妨げるものではありません。 –

+0

私の問題は、完全に不透明なピクセルでは発生しません。アルファ= 254のものだけです。 –

+1

@dystroyそれはまだ色の調整のいくつかの種類かもしれません。あなたは問題を示すjfiddleを作ることができますか? –