2011-12-05 38 views
0

我有一些像素的alpha值爲254的PNG圖像。這些像素具有以下顏色: RGBA {183,221,129,254}(不是javascript表示法)。在getImageData中與alpha相關的PNG RGB轉換?

我可以在GIMP檢查R,G和B分量爲183,221和129。

但是,當我讀取使用getImageData我在Chrome像素(在帆布)的R,G和B值被修改爲182,220和128(A正確254)。

這是一個標準化的轉換或錯誤?如果這是正常的,我在哪裏可以找到準確的公式來預測由PNG中getImageData給出的RGB值?

回答

1

這幾乎肯定是由gamma correction造成的。簡而言之,大多數網頁瀏覽器會忽略圖像中包含的色彩空間並使用默認色彩空間(因爲不可能讓所有內容都使用色彩空間而不會有大的性能損失,尤其是Flash等插件)。

假設你不關心真正的舊瀏覽器(最顯着的是Opera 6和Safari 1),你可以保存圖像而不用任何伽馬信息。

+0

這是一個有趣的閱讀,但刪除伽馬信息並不妨礙Chrome改變數據。 –

+0

我必須精確地說,我的問題不會發生像素完全不透明,只是與alpha = 254。 –

+1

@dystroy它可能仍然是某種顏色調整。你可以做一個展示問題的小工具嗎? –