在getImageData中与alpha相关的PNG RGB转换?

时间:2011-12-05 16:00:23

标签: javascript png rgb html5-canvas

我有一个PNG图像,其中一些像素的alpha值为254.这些像素具有以下颜色:  RGBA {183,221,129,254}(不是javascript表示法)。

我可以在Gimp中检查R,G和B分量是183,221和129。

但是当我使用getImageData(在画布上)在Chrome中读取我的像素时,R,G和B值被修改为182,220和128(A正确地为254)。

这是标准化的转型还是错误?如果这是正常的,我在哪里可以找到确切的公式来预测由PNG中的getImageData给出的RGB值?

1 个答案:

答案 0 :(得分:1)

几乎可以肯定是由gamma correction造成的。简而言之,大多数Web浏览器会忽略图像中包含的颜色空间并使用默认颜色空间(因为不可能在没有大的性能损失的情况下使用颜色空间,尤其是插件,如Flash)。

如果您不关心真正的老浏览器(最值得注意的是Opera 6和Safari 1),您可以在没有任何伽玛信息的情况下保存图像。