我有一个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值?
答案 0 :(得分:1)
几乎可以肯定是由gamma correction造成的。简而言之,大多数Web浏览器会忽略图像中包含的颜色空间并使用默认颜色空间(因为不可能在没有大的性能损失的情况下使用颜色空间,尤其是插件,如Flash)。
如果您不关心真正的老浏览器(最值得注意的是Opera 6和Safari 1),您可以在没有任何伽玛信息的情况下保存图像。