PNG RGB преобразование, связанное с альфа-каналом в getImageData? - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть изображение PNG с некоторыми пикселями, имеющими альфа 254. Эти пиксели имеют этот цвет: RGBA {183, 221, 129, 254} (не в формате javascript).

Я могу проверить в Gimp, что компоненты R, G и B - 183, 221 и 129.

Но когда я читаю свои пиксели в Chrome, используя getImageData (на холсте), значения R, G и B изменяются на 182, 220 и 128 (A - это правильно 254).

Это стандартизированное преобразование или ошибка? Если это нормально, где я могу найти точную формулу для прогнозирования значений RGB, заданных getImageData из значений в PNG?

1 Ответ

1 голос
/ 05 декабря 2011

Это почти наверняка вызвано гамма-коррекцией .Короче говоря, большинство веб-браузеров игнорируют цветовое пространство, включенное в изображение, и используют цветовое пространство по умолчанию (поскольку невозможно получить все, чтобы использовать цветовое пространство без значительного снижения производительности, особенно плагины, такие как Flash).

Если вам не нужны действительно старые браузеры (особенно Opera 6 и Safari 1), вы можете просто сохранить изображение без какой-либо информации о гамме.

...