Преобразовать полутоновое значение в представление RGB?

заменить знак каретки тильдой:

cordova-plugin-googlemaps@~2.2.1
21
задан Community 23 May 2017 в 12:08
поделиться

5 ответов

Быстрый и грязный подход состоит в том, чтобы повторить интенсивность градаций серого для каждого компонента RGB. Итак, если у вас есть оттенки серого 120, это преобразуется в RGB (120, 120, 120).

Это быстро и грязно, потому что эффективная яркость, которую вы получаете, зависит от фактической яркости субпикселей R, G и B устройства. что вы используете.

29
ответ дан 29 November 2019 в 06:17
поделиться

Шкала серого означает, что все значения имеют одинаковую интенсивность. Установите для всех каналов (в RGB) значение серого, и вы получите черно-белое изображение в формате RGB.

7
ответ дан 29 November 2019 в 06:17
поделиться

Преобразование оттенков серого в RGB выполняется просто. Просто используйте R = G = B = серый цвет. Основная идея состоит в том, что цвет (как видно на мониторе с точки зрения RGB) является аддитивной системой.

http://en.wikipedia.org/wiki/Additive_color

Таким образом, добавление красного к зеленому дает желтый цвет. Добавьте в эту смесь в равных количествах немного синего, и вы получите нейтральный цвет. Полное включение [красный, зеленый, синий] = [255 255 255] дает белый цвет. [0,0,0] делает монитор черным. Промежуточные значения, когда R = G = B все равны, дадут номинально нейтральные цвета данного уровня серого.

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

10
ответ дан 29 November 2019 в 06:17
поделиться

Разве нельзя установить для R, G и B одинаковое значение (значение шкалы серого) для каждого пикселя, чтобы получить правильный оттенок серого?

4
ответ дан 29 November 2019 в 06:17
поделиться

Если у вас есть значение шкалы серого в переменной и вы хотите создать новое значение в форме 0x00RRGGBB, то быстрый способ сделать это:

int rgb = grey * 0x00010101;

или эквивалент на выбранном вами языке.

28
ответ дан 29 November 2019 в 06:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: