RGB манипуляции - PullRequest
       24

RGB манипуляции

2 голосов
/ 13 июля 2011

Я экспериментировал с API-интерфейсом HTML5 canvas и написал скрипт, который создает черно-белые изображения из цветных изображений.

Формула для RGB и оттенков серого, которую я использую: r * 0.2989 + g * 0.5870 + b * 0.1140

Хотелось бы узнать, знает ли кто-нибудь еще какие-нибудь формулы для работы с изображениями через значения RGB.

Ответы [ 2 ]

5 голосов
/ 13 июля 2011

вот некоторые

// ADD
c = Math.min( 255, Math.max( 0, c0 + c1 ) )
// SUBTRACT
c = Math.max( 0, c0 - c1 )
// MULTIPLY
c = Math.floor( ( c1 * c0 ) / 0xff )
// SCREEN
c = 255 - Math.floor( ( 255 - c0 ) * ( 255 - c1 ) / 255 )
// LIGHTEN
c = c0 > c1 ? c0 : c1
// DARKEN
c = c0 < c1 ? c0 : c1
// DIFFERENCE
c = c0 > c1 ? c0 - c1 : c1 - c0
// INVERT ( no influence from c1 )
c = 255 - c0
// OVERLAY
c = c0 < 128 ? Math.floor( ( c1 * c0 ) / 127 ) : 255 - Math.ceil( ( 255 - c0 ) * ( 255 - c1 ) / 127 )
// HARDLIGHT
c = c1 < 128 ? Math.floor( ( c1 * c0 ) / 127 ) : 255 - Math.ceil( ( 255 - c0 ) * ( 255 - c1 ) / 127 )

где c0 и c1 - десятичные значения цвета, а c - выходное значение

1 голос
/ 13 июля 2011

Вот способ затемнить изображение:

 (r*0.5) + (g*0.5) + (b*0.5)

Существует несколько других способов манипулирования цветами RGB, таких как пороговая привязка, замена цветовых каналов, отображение только красного, зеленого или синего цветовых каналов, инвертирование цветов, а также контрастность и яркость, среди многих других. Поиск в Интернете по этим ключевым словам может выявить другие способы изменения цвета изображения. Этот вопрос объясняет, как сделать оттенки или оттенки существующих цветов. Обратите особое внимание на замечание о линейной коррекции RGB и гамма-коррекции.

...