Как шестнадцатеричные значения цвета работают в низкоуровневых вычислениях? - PullRequest
0 голосов
/ 09 мая 2011

Я полагаю, это зависит от дисплея компьютера ... но зависит ли это от операционной системы ??

например, цветовые коды: #ff0000, #2e2e2e - очевидно, используются три байта .. но как эти данные (цветовые коды) интерпретируются на самом низком уровне ?? Как приложение отображает цвет на самом низком уровне ??

Заранее спасибо !!

Ответы [ 4 ]

3 голосов
/ 09 мая 2011

Эти коды представляют собой компактное представление трех целых чисел от 0 до 255: красного, синего и зеленого.

Они визуализируются видеокартой с использованием RGB цветовой модели .

1 голос
/ 09 мая 2011

Иногда это может зависеть от операционной системы. В более старых версиях Mac OS и Next использовались значения RGB с гамма-коэффициентом, отличным от того, который выдает монитор. Их видеосистемы будут преобразовывать эти значения перед их отображением. Сегодня вы в основном столкнетесь с sRGB, который был попыткой Microsoft и HP указать среднюю систему отображения на момент ее создания. Иногда вы можете столкнуться с другими системами, такими как Adobe RGB, который может отображать немного больше цветов, чем sRGB.

1 голос
/ 09 мая 2011

RGB рассматривается как красный, зеленый, синий, причем каждое значение является целым числом от 0 до 255 включительно.Вы можете представить красный цвет, например, (255,0,0) или # FF0000, или многими другими способами.

Независимо от того, какое программное обеспечение использует этот цвет, драйверы графической системы вашей операционной системы выводят данные на монитор.Они варьируются от операционной системы к операционной системе, но выходной сигнал порта должен быть стандартизирован для аппаратного обеспечения.

http://en.wikipedia.org/wiki/RGB_color_model#RGB_devices

1 голос
/ 09 мая 2011

Компьютеры используют цветовую модель RGB. В RGB все начинается черным, а затем вы добавляете немного красного / зеленого / синего. Чем больше каждого цвета вы добавляете, тем ярче он становится. Добавление равного количества красного / зеленого / синего создаст оттенки серого (белый, если добавлено максимально возможное из всех трех цветов).

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

Указанные вами цветовые коды представляют собой "шестнадцатеричные" цветовые коды. Это три шестнадцатеричных числа, соединенные вместе. # ff0000 это "ff red", "00 green", "00 blue". ff - максимально возможное двузначное число в шестнадцатеричном формате (оно получается до 255 в стандартном десятичном формате), а 00 - минимально возможное двузначное число (0 как десятичное число).

# 2e2e2e - это 2e каждого красного / зеленого / синего, поэтому создает оттенок серого. 2e является шестнадцатеричным для 47, который намного ближе к 0, чем к 255, поэтому он создает темно-серый цвет.

Шестнадцатеричный формат представляет собой 16-разрядный числовой формат по сравнению с используемым десятичным форматом, который составляет 10 бит. Это означает, что у вас могут быть большие числа с меньшим количеством цифр, и с 16-разрядными проще работать с аппаратными видеокартами. Возможные цифры для шестнадцатеричной системы:

f, which is 15 in decimal
e, which is 14
d, which is 13
c, 12
b, 11
a, 10
9, which is 9 in decimal
8, which is 8
7, 7
6, 6
5, 5
4, 4
3, 3
2, 2
1, 1
0, 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...