Главная / Изображения и графика / Определение цвета пикселя
Пиксели

Цветовая характеристика выбранной точки изображения

Выберите точку изображения и определите её цвет.

Бесплатный лимит - 2,00 МБ. Свыше лимита - 50 ₽.

Пиксель
и его оттенок

Нажмите на изображении — и увидите цвет выбранной точки в разных форматах.

Изображение
Точка
Форматы

Цвет точки на изображении

Загрузите изображение, нажмите на нужную точку и выберите формат цвета.

Результат
—
Загрузите изображение и нажмите на точку — здесь появится её цвет.

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

Визуальная оценка оттенка на экране не даёт точных данных для вёрстки, дизайна или полиграфии. Для работы с графикой и стилями требуется строгая математическая запись цвета.

Результатом обработки выбранного пикселя становится набор числовых и строковых значений, рассчитанных для разных цветовых моделей и пространств. Инструмент мгновенно преобразует базовые параметры точки в шестнадцатеричный формат HEX, поканальные значения RGB и RGBA, цилиндрические координаты HSL и HSB, полиграфическую модель CMYK, а также перцептивные пространства Lab и OKLCH. Дополнительно по минимальному цветовому отклонению подбираются ближайшие именованные стандарты и образцы из промышленных каталогов, таких как RAL и Pantone. Полученные коды можно сразу копировать в таблицы стилей CSS, передавать в графические редакторы или использовать для сверки макета с техническим заданием.

Определение цвета пикселя

Принцип считывания цвета пикселя из растровой сетки

Любое цифровое растровое изображение после открытия и декодирования представляется как упорядоченная двумерная матрица элементарных точек - пикселей. Положение каждой такой точки однозначно задаётся парой целочисленных координат по горизонтальной оси X и вертикальной оси Y. В компьютерной графике точка отсчёта (0, 0) традиционно располагается в левом верхнем углу полотна: координата X увеличивается слева направо до значения ширины файла минус единица, а координата Y - сверху вниз до значения высоты минус единица.

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

Структура хранения цветовых данных на примере ImageData

В веб-среде стандартным механизмом работы с растровой сеткой выступает HTML5 Canvas API и его базовая структура данных ImageData. Несмотря на то что визуально изображение воспринимается как двумерная таблица с шириной и высотой, в оперативной памяти пиксели выстраиваются в единый одномерный типизированный массив целых чисел Uint8ClampedArray.

Каждому отдельному пикселю в этом массиве отводится ровно четыре последовательных элемента (байта), которые описывают его базовый числовой вектор:

  • Первый байт хранит интенсивность канала Red (красный).
  • Второй байт отвечает за канал Green (зелёный).
  • Третий байт задаёт значение канала Blue (синий).
  • Четвёртый байт определяет состояние канала Alpha (уровень непрозрачности точки).

В структуре ImageData данные записываются построчно: сначала идут четвёрки значений для всех пикселей верхнего ряда (Y = 0) слева направо, затем без разделителей следуют данные второго ряда (Y = 1) и так далее до правого нижнего угла изображения.

Сопоставление координат выбора и извлечение числового вектора

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

После определения точных координат пикселя (X, Y) вычисляется стартовый индекс его цветовых данных в одномерном массиве ImageData. Расчёт позиции выполняется по строгой математической формуле, учитывающей ширину изображения (W) и шаг в четыре байта на каждую точку:

Index = (Y × W + X) × 4

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

Ниже приведена схема расположения каналов в массиве ImageData и правила обращения к ним при известном стартовом индексе точки:

Компонент вектора Смещение в массиве Формула индекса в ImageData Назначение параметра
Red +0 (Y × W + X) × 4 Интенсивность красной составляющей точки
Green +1 (Y × W + X) × 4 + 1 Интенсивность зелёной составляющей точки
Blue +2 (Y × W + X) × 4 + 2 Интенсивность синей составляющей точки
Alpha +3 (Y × W + X) × 4 + 3 Коэффициент непрозрачности выбранного пикселя

Для наглядности можно рассмотреть изображение шириной W = 100 пикселей, в котором выбрана точка с координатами X = 10 и Y = 2. Подстановка значений в формулу даёт стартовый индекс: (2 × 100 + 10) × 4 = 840. Это означает, что параметры цвета данного пикселя записаны в ячейках массива под номерами 840 (Red), 841 (Green), 842 (Blue) и 843 (Alpha). Извлечение этой четвёрки чисел завершает этап чтения растровой сетки и передаёт чистые данные на этап конвертации в целевые цветовые пространства.

Форматы представления цвета точки и правила их расчёта

Извлечённый из памяти четвёртый по счёту элемент и три предшествующих ему байта образуют сырой вектор (R, G, B, A), где каждый компонент представлен целым числом в диапазоне от 0 до 255. Эти базовые десятичные значения напрямую формируют форматы RGB и RGBA, а также служат отправной точкой для математического пересчёта в шестнадцатеричные коды, цилиндрические координаты, субтрактивные полиграфические модели и перцептивно равномерные пространства.

Десятичная и шестнадцатеричная запись каналов

В модели RGB цвет точки записывается в виде упорядоченной тройки целых чисел rgb(R, G, B) . При формировании строки RGBA четвёртый компонент вектора - байт непрозрачности A - нормализуется путём деления на 255 и округляется до двух знаков после запятой, принимая вид коэффициента от 0 (полная прозрачность) до 1 (полная непрозрачность): a = A / 255 .

Формат HEX представляет собой компактную строковую запись тех же 8-битных каналов в шестнадцатеричной системе счисления (hexadecimal triplet) с префиксом в виде символа решётки. Для перевода каждого десятичного числа от 0 до 255 в двухсимвольный шестнадцатеричный код используется целочисленное деление на 16. Старший разряд определяется как целая часть от деления ⌊C / 16⌋ , а младший - как остаток C mod 16 , где значениям от 10 до 15 сопоставляются латинские буквы от A до F. Если значение канала меньше 16, перед полученной цифрой обязательно добавляется ведущий ноль. Расширенный формат HEX8 включает четвёртую пару символов, кодирующую исходный байт канала A по тому же правилу без предварительного деления на 255.

В качестве сквозного примера для всех расчётов можно взять пиксель с исходными параметрами R = 52, G = 152, B = 219 и A = 204. Для красного канала 52 / 16 = 3 (остаток 4), что даёт 34 ; для зелёного 152 / 16 = 9 (остаток 8), что переводится в 98 ; для синего 219 / 16 = 13 (буква D) и остаток 11 (буква B), что формирует DB . Канал непрозрачности 204 при делении на 16 даёт 12 (C) и остаток 12 (C), то есть CC , а в долях единицы составляет 204 / 255 = 0.8 .

Пересчёт в цилиндрические координаты HSL и HSV

Аддитивная запись по каналам не даёт наглядного представления о том, к какому участку спектра относится точка и насколько она светлая или насыщенная. Для решения этой задачи координаты RGB переводятся в цилиндрические модели HSL, HSLA и HSV (также обозначаемую как HSB). На первом этапе оба алгоритма требуют нормализации исходных каналов к диапазону от 0 до 1 и нахождения экстремумов:

  • Нормализованные значения каналов: r = R / 255 , g = G / 255 , b = B / 255 .
  • Максимальная компонента: Cmax = max(r, g, b) .
  • Минимальная компонента: Cmin = min(r, g, b) .
  • Хроматическая амплитуда (размах): Δ = Cmax − Cmin .

Цветовой тон H измеряется в угловых градусах от 0° до 360° и рассчитывается одинаково для HSL и HSV. Если Δ = 0 , точка является ахроматической (оттенок серого), и угол H принимается равным 0°. В остальных случаях формула зависит от того, какой из трёх каналов оказался максимальным:

  • При Cmax = r : H = 60° × (((g − b) / Δ) mod 6) .
  • При Cmax = g : H = 60° × (((b − r) / Δ) + 2) .
  • При Cmax = b : H = 60° × (((r − g) / Δ) + 4) .

Светлота L в модели HSL определяется как среднее арифметическое между максимумом и минимумом: L = (Cmax + Cmin) / 2 . Насыщенность в этой же модели зависит от положения светлоты относительно середины шкалы: при Δ = 0 она равна 0, а для цветных точек вычисляется по формуле S_HSL = Δ / (1 − |2L − 1|) . В модели HSV параметр яркости V равен самому большому из нормализованных каналов ( V = Cmax ), а насыщенность рассчитывается как отношение размаха к максимуму: S_HSV = Δ / Cmax (при Cmax = 0 насыщенность равна 0). Полученные доли S, L и V умножаются на 100 для записи в процентах. В формате HSLA к тройке значений добавляется тот же коэффициент непрозрачности a = A / 255 .

Для рассматриваемого пикселя (52, 152, 219) нормализованные координаты составляют r ≈ 0.2039 , g ≈ 0.5961 , b ≈ 0.8588 . Здесь Cmax = 0.8588 (синий канал), Cmin = 0.2039 , а Δ = 0.6549 . Угол тона равен H = 60° × (((0.2039 − 0.5961) / 0.6549) + 4) ≈ 204° . Светлота L = (0.8588 + 0.2039) / 2 ≈ 0.5314 (53%), насыщенность S_HSL = 0.6549 / (1 − |2 × 0.5314 − 1|) ≈ 0.70 (70%). Для модели HSV яркость V = 86% , а насыщенность S_HSV = 0.6549 / 0.8588 ≈ 0.76 (76%).

Субтрактивная модель CMYK

При подготовке макетов к печати используется субтрактивная модель CMYK, оперирующая процентами голубой (C), пурпурной (M), жёлтой (Y) и ключевой чёрной (K) красок. Базовый математический пересчёт из нормализованных координат r, g, b начинается с вычисления доли чёрного пигмента как дополнения самого яркого канала до единицы:

K = 1 − max(r, g, b)

Если K = 1 (точка абсолютно чёрная, где R = G = B = 0), компоненты C, M и Y принимаются равными 0%. Во всех остальных случаях доля каждой цветной краски рассчитывается с поправкой на уже выделенный чёрный компонент и переводится в проценты:

  • Голубой канал: C = (1 − r − K) / (1 − K) × 100%
  • Пурпурный канал: M = (1 − g − K) / (1 − K) × 100%
  • Жёлтый канал: Y = (1 − b − K) / (1 − K) × 100%

Для точки с максимумом b = 0.8588 доля чёрного составляет K = 1 − 0.8588 = 0.1412 (14%). Подстановка остальных каналов даёт C = (1 − 0.2039 − 0.1412) / 0.8588 ≈ 76% , M = (1 − 0.5961 − 0.1412) / 0.8588 ≈ 31% и Y = 0% .

Перцептивные пространства Lab и OKLCH

Аппаратно-зависимые модели не учитывают нелинейность человеческого зрения: одинаковый математический шаг в координатах RGB в зелёной и синей областях спектра воспринимается глазом как разная степень изменения оттенка. Для точной колориметрии используются перцептивно равномерные пространства Lab (при стандартном источнике дневного света D65) и OKLCH.

Переход в оба пространства требует предварительной линеаризации гамма-скорректированных значений r, g, b (снятия нелинейной передаточной функции). Для каждого канала c ∈ {r, g, b} вычисляется линейный эквивалент c_lin : если c ≤ 0.04045 , то c_lin = c / 12.92 , иначе c_lin = ((c + 0.055) / 1.055)^2.4 .

Для расчёта координат Lab (D65) линейные каналы умножаются на матрицу перехода в базовое тристимульное пространство XYZ, после чего значения X, Y, Z нормируются на координаты белой точки эталонного излучателя D65 ( Xn = 0.95047 , Yn = 1.00000 , Zn = 1.08883 ) и пропускаются через нелинейную функцию кубического корня. В результате формируются три оси: перцептивная светлота L (от 0 до 100), красно-зелёная оппонентная ось a (от отрицательных зелёных к положительным пурпурно-красным значениям) и жёлто-синяя ось b (от отрицательных синих к положительным жёлтым).

Пространство OKLCH строится вокруг модели Oklab, которая устраняет искажения цветового тона в синей области, характерные для классического Lab. Линейные компоненты RGB сначала переводятся в отклик колбочек глаза LMS, возводятся в степень 1/3 и преобразуются в прямоугольные координаты светлоты L, красно-зелёной оси a и жёлто-синей оси b пространства Oklab. Затем декартовы координаты a и b переводятся в полярные:

  • Светлота L остаётся без изменений и выражается в долях от 0 до 1 или в процентах от 0% до 100%.
  • Хрома (насыщенность) C вычисляется как длина вектора из центра координат: C = √(a² + b²) .
  • Угол цветового тона H определяется через двухпараметрический арктангенс: H = atan2(b, a) × (180° / π) (при отрицательном значении к результату прибавляется 360°).

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

Формат Синтаксис и размерность параметров Учёт канала Alpha Значение для точки (R=52, G=152, B=219, A=204)
RGB Три целых числа от 0 до 255 Нет rgb(52, 152, 219)
RGBA Три числа 0-255 и коэффициент от 0 до 1 Да rgba(52, 152, 219, 0.8)
HEX Шестнадцатеричный триплет #RRGGBB (00-FF) Нет #3498DB
HEX8 Четыре шестнадцатеричные пары #RRGGBBAA Да #3498DBCC
HSL Угол H (0°-360°), проценты S и L (0%-100%) Нет hsl(204, 70%, 53%)
HSLA H (0°-360°), S и L (0%-100%), Alpha (0-1) Да hsla(204, 70%, 53%, 0.8)
HSV / HSB Угол H (0°-360°), проценты S и V (0%-100%) Нет hsv(204, 76%, 86%)
CMYK Четыре процентных значения красок (0%-100%) Нет cmyk(76%, 31%, 0%, 14%)
Lab (D65) Светлота L (0-100), оппонентные оси a и b Нет lab(59.6 -10.8 -42.5)
OKLCH Светлота L (0-1), хрома C, угол тона H (0°-360°) Нет oklch(0.65 0.14 246.5)

Именованные стандарты, каталоги и расчёт цветовой разницы ΔE

Помимо непрерывных координатных пространств, цвет точки сопоставляется с дискретными наборами фиксированных образцов. В цифровой среде применяются три исторических стандарта: базовый набор 16 Basic HTML Colors (16 ключевых имён эпохи первых спецификаций разметки, таких как navy , teal или silver ), расширенный словарь X11 Color Names (более 140 стандартизированных текстовых идентификаторов, включая cornflowerblue и darkslategray ) и палитра Web-safe из 216 оттенков, где каждый канал принимает строго одно из шести значений: 00 , 33 , 66 , 99 , CC или FF (десятичные кратные 51). В промышленном производстве, архитектуре и смесевой печати используются физические веера и таблицы эталонов RAL и Pantone, где каждому образцу присвоен уникальный артикул и задокументированы его колориметрические координаты.

Поскольку произвольный пиксель фотографии или градиента крайне редко имеет стопроцентное совпадение с табличным эталоном, для поиска ближайшего именованного цвета вычисляется метрика цветовой разницы ΔE (Delta E). Расчёт выполняется в перцептивном пространстве Lab, что гарантирует соответствие математического расстояния реальному зрительному восприятию человека. Базовая формула евклидова расстояния между координатами исследуемого пикселя (L₁, a₁, b₁) и координатами образца из каталога (L₂, a₂, b₂) имеет вид:

ΔE = √((L₂ − L₁)² + (a₂ − a₁)² + (b₂ − b₁)²)

При поиске совпадения координаты выбранного пикселя последовательно сравниваются со всеми записями целевого справочника (например, со всеми образцами RAL или списком X11 Color Names). Эталон, показавший минимальное значение ΔE, фиксируется как ближайшее соответствие. Значение ΔE = 0 означает полное совпадение двух цветов; разница ΔE < 1.0 практически неразличима человеческим глазом, при ΔE от 1 до 2.5 отклонение заметно только при непосредственном прикладывании образцов друг к другу, а значения свыше 5 указывают на явно выраженное отличие оттенка от ближайшего стандартизированного аналога.

Факторы, влияющие на точность цветового значения пикселя

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

Артефакты сжатия с потерями и сглаживание контуров

Форматы хранения графики, использующие алгоритмы сжатия с потерями, при сохранении файла намеренно изменяют исходные значения пикселей для уменьшения объёма данных. В форматах JPG, JPEG и при lossy-кодировании WebP изображение разбивается на блоки (например, 8×8 пикселей), внутри которых высокочастотные перепады яркости и цвета отбрасываются или усредняются за счёт квантования и цветовой субдискретизации. Даже если в графическом редакторе плашка была залита чистым цветом #0055FF , после сохранения в JPEG внутри этой области и особенно вблизи её границ появляются хаотичные отклонения - так называемый «москитный шум» и блочные искажения. Соседние точки на визуально однородном фоне могут получить коды #0254FD , #0057FC или #0453FF . Для получения неискажённых эталонных кодов графических элементов анализ целесообразно проводить на исходниках в форматах со сжатием без потерь, таких как PNG.

Другой распространённой причиной получения неожиданных цветовых кодов является сглаживание (anti-aliasing). Чтобы наклонные линии, округлые иконки и шрифты не выглядели зубчатыми («пиксельными») на прямоугольной сетке экрана, алгоритмы растеризации добавляют вдоль границ контрастных объектов переходные пиксели. Эти точки окрашиваются в промежуточные полутона между цветом самого объекта и цветом фона. Например, на границе чёрного текста ( #000000 ) и белого фона ( #FFFFFF ) образуется кайма из серых пикселей с различными градациями светлоты, а при субпиксельном сглаживании шрифтов на краях букв возникают цветные ореолы (красноватые, голубые или жёлтые оттенки). Если выбор точки приходится на край тонкой линии или мелкого символа, результатом считывания станет именно такой промежуточный полутон, а не основной цвет заливки элемента.

Цифровой шум, освещение и градиенты на фотографиях

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

  • Цифровой шум матрицы и зернистость: при съёмке в условиях недостаточного освещения или на высоких значениях светочувствительности сенсора камеры возникают случайные флуктуации сигнала. Они проявляются в виде яркостного шума (случайные тёмные и светлые точки) и хроматического шума (единичные вкрапления пурпурных, зелёных или синих пикселей, выпадающих из общей гаммы участка).
  • Неравномерность освещения и микрорельеф: падение света под углом, затенения (виньетирование) к краям кадра, блики и собственная текстура материала создают плавные тональные переходы по всей площади объекта.
  • Искусственные градиенты и тонирование: в растровых иллюстрациях и обработанных фото для предотвращения эффекта ступенчатости (бандинга) в плавные переходы цвета специально добавляется дизеринг - микроскопический шум, перемешивающий точки смежных оттенков.

Ниже приведено сравнение основных технических факторов, вызывающих отклонение кода отдельного пикселя от ожидаемого цвета области:

Фактор искажения Где чаще всего проявляется Характер изменения цветового кода Практическая рекомендация при выборе точки
Сжатие с потерями (JPG, JPEG, WebP) Сжатые веб-иллюстрации, баннеры, пересланные через мессенджеры скриншоты Небольшой разброс значений в каналах R, G, B вокруг базового цвета; «грязные» оттенки вблизи контрастных границ Выбирать точку в геометрическом центре однотонной области, вдали от контуров и текста
Сглаживание (anti-aliasing) Края букв, тонкие линии, векторные иконки после растеризации, диагональные границы Появление смешанных полутонов между цветом фигуры и фоном; ложные цветные оттенки при субпиксельном рендеринге Брать пробу из центральной (наиболее плотной) части штриха или заливки при максимальном увеличении
Цифровой шум и зернистость Фотографии с высоким ISO, снимки в темноте, сканы печатных материалов Резкие локальные скачки светлоты или насыщенности на отдельных точках-выбросах Визуально избегать явно выделяющихся светлых, тёмных или цветных вкраплений внутри текстуры
Градиенты и неравномерный свет Фоны с плавной растяжкой, студийные и натурные фотографии объектов Плавное закономерное смещение координат цвета по мере смещения позиции выбора по осям X и Y Определять цвет в нескольких точках участка (в светах, полутонах и тенях) для понимания диапазона

Цветовые профили ICC и различия пространств sRGB, Display P3, Adobe RGB

Числа, сохранённые в каналах пикселя (например, вектор 230, 50, 40 ), сами по себе являются относительными координатами устройства и не определяют абсолютный физический цвет без привязки к конкретному цветовому пространству. Эту привязку обеспечивает встроенный в метаданные файла профиль ICC, который сообщает программе просмотра, какой именно эталон красного, зелёного и синего соответствует максимальному значению 255 в каждом канале.

Базовым стандартом для веба и большинства пользовательских мониторов служит пространство sRGB. Однако современные смартфоны, камеры и профессиональные дисплеи часто создают и сохраняют графику в пространствах с расширенным цветовым охватом - Display P3 (DCI-P3) или Adobe RGB. Одни и те же числовые значения каналов в разных пространствах дают визуально разный результат, и наоборот: один и тот же физический оттенок в разных профилях записывается разными числами.

При декодировании изображения браузером и его отрисовке в среде, использующей стандартное пространство sRGB, происходит колориметрическое преобразование (маппинг цветов):

  • Если изображение содержит встроенный профиль Display P3 или Adobe RGB и браузер учитывает управление цветом, исходные значения пикселей при переводе в буфер sRGB математически пересчитываются, чтобы сохранить визуальное сходство оттенка. В результате считанный HEX-код может отличаться от тех цифр, которые отображались в профессиональном фоторедакторе, работающем в нативном профиле документа.
  • Если цветовой профиль был удалён из файла при оптимизации (без конвертации самих пикселей в sRGB), браузер интерпретирует сырые координаты широкого охвата так, будто они изначально записаны в sRGB. Визуально такое изображение выглядит приглушённым и менее насыщенным, хотя сами числовые значения в растровой сетке остаются прежними.

Точечная выборка против матричного усреднения соседних пикселей

В теории цифровой обработки изображений и компьютерного зрения разделяют два подхода к извлечению цвета из указанной координаты: точечную выборку (point sampling) и пространственное усреднение по локальной окрестности (area averaging).

При точечной выборке фиксируются данные ровно одного пикселя с координатами (X, Y) . Этот метод обеспечивает абсолютную пиксельную точность, которая необходима при анализе пиксельной графики (pixel art), проверке рендеринга отдельных линий в макетах интерфейсов, поиске точного кода сплошной CSS-заливки на скриншоте без сжатия или выявлении битых и шумовых пикселей.

При матричном усреднении вокруг выбранной точки (X, Y) формируется квадратное окно размером 3×3 (9 пикселей), 5×5 (25 пикселей) или более (с нечётной стороной, чтобы целевой пиксель находился строго в центре). Для каждого цветового канала вычисляется среднее арифметическое всех точек, попавших в эту матрицу:

R_avg = round((R₁ + R₂ + ... + Rₙ) / n)
G_avg = round((G₁ + G₂ + ... + Gₙ) / n)
B_avg = round((B₁ + B₂ + ... + Bₙ) / n)

Математически такая операция действует как низкочастотный сглаживающий фильтр (коробочное размытие), который гасит случайные высокочастотные отклонения - шум матрицы камеры и артефакты JPEG-сжатия. Поскольку точечное считывание обращается к единственному пикселю без сглаживания окрестности, при работе с шумными фотографиями или текстурами ткани, кожи и листвы выбор рекомендуется делать осознанно: при большом приближении находить точку, наиболее характерную для нужного тона и не являющуюся случайным бликом или шумовым выбросом.

Практическое применение полученных цветовых кодов в дизайне и разработке

После выбора репрезентативной точки и получения очищенного от шумов числового значения цвет переносится в код приложения, файлы стилей или документацию дизайн-системы. Каждая платформа и графическая среда предъявляет собственные синтаксические требования к записи цветовых примитивов.

Frontend-разработка и работа с таблицами стилей CSS

При вёрстке веб-интерфейсов по растровым макетам, референсам или скриншотам извлечённые коды напрямую подставляются в свойства color , background-color , border-color , fill и stroke . В современной архитектуре таблиц стилей цвета редко прописываются жёстко в отдельных селекторах - вместо этого они выносятся на уровень корневого псевдокласса :root в виде CSS custom properties и связываются в единую систему цветовых дизайн-токенов.

:root {
  /* Базовые палитровые токены в разных нотациях */
  --brand-primary-hex: #2563eb;
  --brand-primary-rgb: rgb(37 99 235);
  --brand-primary-hsl: hsl(221 83% 53%);
  --brand-primary-oklch: oklch(54.6% 0.215 262.9);

  /* Хранение отдельных каналов для динамической прозрачности */
  --surface-tint-channels: 37 99 235;
}

.card-interactive {
  background-color: rgb(var(--surface-tint-channels) / 0.12);
  border: 1px solid var(--brand-primary-oklch);
}

Выбор конкретной нотации в коде зависит от того, как именно цвет будет модифицироваться в интерфейсе:

  • Формат HEX используется для статичных бренд-цветов, заливки SVG-иконок и базовых констант в конфигурационных файлах сборщиков и CSS-фреймворков.
  • Формат RGB и его поканальная запись удобны при создании полупрозрачных подложек, теней и состояний наведения через синтаксис rgb(R G B / alpha) без дублирования основного цвета.
  • Форматы HSL и OKLCH применяются при программной генерации светлых и тёмных тем, а также состояний :hover , :active и :disabled . При работе с OKLCH изменение первого аргумента (воспринимаемой светлоты) даёт предсказуемый визуальный контраст без искажения оттенка и насыщенности.

Мобильная разработка под iOS, Android и кроссплатформенные фреймворки

В нативных и кроссплатформенных SDK редко используются строковые коды со знаком решётки. Большинство графических движков мобильных систем принимает либо 32-битные целые числа в шестнадцатеричной записи с обязательным указанием старшего байта альфа-канала (формат 0xAARRGGBB ), либо нормализованные значения каналов с плавающей точкой в диапазоне от 0.0 до 1.0 .

В следующей таблице приведены шаблоны инициализации одного и того же цвета (например, со значениями #2563EB или R: 37, G: 99, B: 235 ) в основных мобильных фреймворках.

Платформа / Фреймворк Формат входных данных Пример объявления в коде
Flutter (Dart) 32-битный литерал 0xAARRGGBB или десятеричные каналы 0-255 Color(0xFF2563EB) или Color.fromARGB(255, 37, 99, 235)
Jetpack Compose (Kotlin) Шестнадцатеричное число типа Long с префиксом прозрачности Color(0xFF2563EB)
Android Views (Kotlin / Java / XML) Упакованный Android color int или ресурс #RRGGBB / #AARRGGBB Color.rgb(37, 99, 235) или в XML: #FF2563EB
SwiftUI (Swift) Нормализованные доли каналов от 0.0 до 1.0 (деление на 255) Color(red: 37/255, green: 99/255, blue: 235/255)

При переносе стандартного 6-значного HEX-кода в конструкторы Flutter и Jetpack Compose важно добавлять префикс 0xFF перед значениями RRGGBB . Если передать 24-битное число вида 0x2563EB напрямую, старший байт альфа-канала окажется равным 00 , и элемент интерфейса отрендерится полностью прозрачным.

UI/UX-дизайн, визуальный аудит и контроль доступности

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

При составлении мудбордов и анализе референсов из фотографий, иллюстраций или шотов других интерфейсов извлекаются опорные оттенки для будущей палитры: доминантный цвет фона, акцентные тона и приглушённые нейтральные цвета для второстепенных элементов. На этапе тестирования вёрстки и дизайн-ревью сверка по скриншоту помогает провести аудит соответствия стилям компании (Brand Colors). Сравнение эталонных кодов из брендбука с фактическими пикселями скомпилированного экрана выявляет ошибки наложения прозрачностей, неверно применённые фильтры или искажения цвета при экспорте графических ассетов.

Отдельный сценарий использования полученных кодов - проверка читаемости интерфейса по стандарту WCAG. Для расчёта коэффициента контрастности с растрового макета или скриншота поочерёдно снимаются два значения: цвет пикселя в центральной части штриха буквы (без захвата полупрозрачных пикселей сглаживания по краям) и цвет пикселя прилегающего фона. Полученная пара кодов передаётся в формулу расчёта относительной яркости для подтверждения нормативных порогов:

  • Уровень AA требует минимального контраста 4.5:1 для обычного наборного текста и 3:1 для крупного текста (от 18 pt или от 14 pt при жирном начертании), а также для значимых иконок и границ полей ввода.
  • Уровень AAA устанавливает повышенный порог 7:1 для обычного текста и 4.5:1 для крупных заголовков, что критично для интерфейсов с высокими требованиями к доступности.

Если текст расположен поверх фотографии или сложного градиента, пробу фона берут в самой светлой точке под светлым шрифтом или в самой тёмной точке под тёмным шрифтом. Такой замер по наихудшему участку гарантирует, что надпись останется различимой на всём протяжении текстового блока.

Нужен другой
инструмент для изображений?

Откройте раздел инструментов для работы с изображениями и графикой.

Все инструменты для изображений