Подтвердить что ты не робот

Почему мы всегда разделяем значения RGB на 255?

Почему мы всегда разделяем наши значения RGB на 255?
Я знаю, что диапазон от [0-1]. Но почему только с 255? Может ли кто-нибудь объяснить мне концепции значений RGB? Спасибо заранее.

4b9b3361

Ответ 1

RGB (красный, зеленый, синий) - по 8 бит.
Диапазон для каждого отдельного цвета равен 0-255 (как 2 ^ 8 = 256 возможностей).
Диапазон комбинаций 256 * 256 * 256.

Делясь на 255, диапазон 0-255 может быть описан с диапазоном 0.0-1.0, где 0.0 означает 0 (0x00) и 1.0 означает 255 (0xFF).

Ответ 2

Это немного общий вопрос, поскольку он может быть специфичным для платформы и даже для метода. Это действительно сводится к математике и получает значение между 0-1. Поскольку 255 - максимальное значение, деление на 255 выражает 0-1-представление.

Каждый канал (красный, зеленый и синий - это каждый канал) имеет 8 бит, поэтому каждый из них ограничен 256, в этом случае 255, поскольку включен 0. Как показывает ссылка, системы обычно используют значения между 0-1 при использовании значений с плавающей запятой.

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

См. числовые представления.

Эти диапазоны можно количественно определить несколькими способами: от 0 до 1, с любым дробным значением между ними. Это представление используется в теоретические анализы и в системах, использующих плавающие точки представления. Каждое значение цветового компонента также может быть записано как процент от 0% до 100%. В компьютерах значения компонентов часто сохраняются как целые числа в диапазоне от 0 до 255, диапазон, который может предложить один 8-битный байт. Они часто представлены как десятичные или шестнадцатеричные числа. Высококачественное цифровое графическое оборудование часто способные обрабатывать большие целые диапазоны для каждого основного цвета, таких как 0,1023 (10 бит), 0..65535 (16 бит) или даже больше, расширяя 24-битные (три 8-битных значения) до 32-битных, 48-битных или 64-разрядные устройства (более или менее независимые от конкретных компьютеров размер слова).

Ответ 3

Значение RGB увеличивается от 0 до 255, поскольку оно занимает ровно один байт данных. Один байт равен 8 битам, и каждый бит представляет собой либо 0, либо 1. Это делает 0 в 8-битном двоичном формате: 00000000 и 255 11111111. Последний бит говорит, если в значении 1. Второй последний говорит, если в значении есть 2. Третий последний говорит, если в значении 4, и так далее удваивается каждый раз. Если вы добавите все небольшие значения, которые присутствуют, вы получите общее значение. Например,

    =10110101
    =1*128 + 0*64 + 1*32 + 1*16 + 0*8 + 1*4 + 0*2 + 1*1
    =128 + 32 + 16 + 4 + 1
    =181

Это означает, что 10110101 в двоичном формате равно 181 в десятичной форме.

Ответ 4

Значения RGB обычно сохраняются как целые числа для сохранения памяти. Но делать математику по цветам обычно делают в float, потому что это проще, мощнее и точнее. Акт преобразования поплавков в целые числа называется "квантованием", и он отбрасывает точность.

Как правило, значения RGB кодируются как 8-битные целые числа, которые варьируются от 0 до 255. Это отраслевой стандарт, чтобы думать о 0.0f как о черном и 1.0f как о белом (максимальная яркость). Для преобразования [0, 255] в [0.0f, 1.0f] все, что вам нужно сделать, это разделить на 255.0f.

Если вам это нравится, это формула для преобразования обратно в целое число: (int) floor (x * 255.0f + 0.5f). Но сначала прикрепите x к [0.0f, 1.0f], если это необходимо.