Какой цветовой код использует холст?

Canvas — это элемент HTML5, используемый для рисования графики с помощью JavaScript. При работе с холстом вы указываете цвета с помощью значений RGB, RGBA, HSL или шестнадцатеричных значений цвета. Эти цветовые коды позволяют вам устанавливать компоненты красного, зеленого, синего и альфа (прозрачность) для создания миллионов возможных цветовых комбинаций.

Цветовые коды RGB

Цветовая модель RGB использует компоненты красного, зеленого и синего для создания цветов. Каждый компонент указывается по шкале от 0 до 255, где 0 означает отсутствие этого цвета, а 255 означает полную интенсивность. Смешивая разное количество красного, зеленого и синего, можно получить любой цвет в пределах гаммы RGB.

Вот синтаксис для значения цвета RGB:

rgb(красный, зеленый, синий)

Например:

rgb(255, 0, 0) - чистый красный rgb(0, 255, 0) - чистый зеленый rgb(0, 0, 255) - чистый синий rgb(255, 255, 0) - желтый rgb(255, 0, 255) - пурпурный

Объединив все три компонента, вы получите белый цвет, а 0,0,0 даст черный.

Коды цветов RGBA

Цвета RGBA работают так же, как RGB, но с добавлением альфа-канала для управления непрозрачностью. Значение альфа указывается как десятичное число от 0 до 1, где 0 — полностью прозрачный, а 1 — полностью непрозрачный.

Вот синтаксис для значения цвета RGBA:

rgba(red, green, blue, alpha)

Например:

rgba(255, 0, 0, 1) — сплошной красный rgba(0, 255, 0, 0.5) — полупрозрачный зеленый rgba(0, 0, 255, 0.25) — тусклый синий

Альфа-канал RGBA полезен для создания прозрачных наложений и других эффектов на холсте.

Цветовые коды HSL

HSL обозначает оттенок, насыщенность и яркость. Он представляет цвета с использованием более естественной модели цветового круга, а не кубической модели RGB. Значение оттенка варьируется от 0 до 360 и представляет собой угол на цветовом круге. Насыщенность описывает интенсивность оттенка от 0% до 100%. Lightness устанавливает баланс света и тени от 0% до 100%.

Вот синтаксис для значения цвета HSL:

hsl(оттенок, насыщенность, яркость)

Например:

hsl(0, 100%, 50%) - красный hsl(120, 100%, 50%) - зеленый hsl(240, 100%, 50%) - синий hsl(60, 100%, 50%) - желтый hsl(300, 100%, 50%) - пурпурный

HSL может быть более интуитивно понятным в использовании, чем коды RGB или шестнадцатеричные, особенно при настройке яркости/светлости цвета.

Шестнадцатеричные коды цветов

Шестнадцатеричные или шестнадцатеричные коды цветов представляют значения RGB в строке из 6 шестнадцатеричные символы. Каждая пара символов кодирует один цветовой канал. Например:

#FF0000 - красный #00FF00 - зеленый #0000FF - синий 

В шестнадцатеричных кодах порядок пар всегда #RRGGBB слева направо. Каждый шестнадцатеричный символ имеет значение от 0 до F, что соответствует десятичным значениям от 0 до 255 для каждого цветового канала RGB. Некоторые примеры:

0 - черный F - максимальное значение (десятичное 255) 8 - среднее значение (десятичное 128) 

Шестнадцатеричные значения обычно используются для веб-цветов, поскольку они компактны и удобны для чтения/печати. Начальный символ # необязателен при указании шестнадцатеричных цветов в коде.

Цвета заливки и обводки холста

Для операций рисования на холсте, таких как прямоугольники, текст, пути и т. д., вы можете задать цвет заливки и цвет обводки. Заливка — это внутренняя часть фигуры, а обводка — это контур. Вы можете использовать любой из форматов цвета RGB, RGBA, HSL или hex.

Например:

// Задать цвет заливки ctx.fillStyle = '#FF0000'; // Задать цвет обводки ctx.strokeStyle = 'rgba(0,0,255,0.5)'; 

Это установит заливку сплошным красным цветом, а обводку — 50% непрозрачным синим.

Градиенты холста

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

  • Линейный градиент — смешивает два или более цветов вдоль линии
  • Радиальный градиент — смешивает цвета, исходящие из точки

Чтобы создать градиент, сначала определите объект CanvasGradient. Для линейного градиента вы передаете начальную и конечную позиции. Для радиального градиента вы передаете начальную позицию и радиус.

Затем вы добавляете цветовые остановки к градиенту, вызывая его метод addColorStop(). Каждая остановка определяется смещением от 0 до 1 и цветом.

Вот пример линейного градиента от красного до синего:

// Создание градиента холста var grd = ctx.createLinearGradient(0, 0, canvas.width, 0); // Добавление цветовых остановок grd.addColorStop(0, 'red'); grd.addColorStop(1, 'blue'); // Установить как стиль заливки ctx.fillStyle = grd; 

И пример радиального градиента:

// Создать радиальный градиент var grd = ctx.createRadialGradient(canvas.width/2, canvas.height/2, 0, canvas.width/2, canvas.height/2, canvas.width/2); // Добавить остановки цвета grd.addColorStop(0, 'red'); grd.addColorStop(1, 'blue'); // Установить как стиль заливки ctx.fillStyle = grd; 

Градиенты позволяют создавать красивые цветные смешанные фоны и эффекты на холсте.

Шаблоны холста

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

// Создание узора var img = new Image(); img.src = 'image.png'; var ptrn = ctx.createPattern(img, 'repeat'); // Установка стиля заливки ctx.fillStyle = ptrn; 

Это позволит разместить изображение image.png в виде мозаики при заливке фигур. Вы также можете установить режим повторения узора на 'repeat-x', 'repeat-y' или 'no-repeat'. Узоры позволяют достигать всевозможных интересных графических эффектов.

Тени на холсте

Использование теней — хороший способ добавить глубину и перспективу рисункам на холсте. Чтобы добавить тень, сначала настройте параметры тени:

// Настройки тени ctx.shadowOffsetX = 2; ctx.shadowOffsetY = 2; ctx.shadowBlur = 2; ctx.shadowColor = 'rgba(0,0,0,0.5)'; 

Это устанавливает смещение в 2 пикселя по осям X и Y, величину размытия в 2 пикселя и 50% непрозрачный черный цвет тени. После настройки ко всем нарисованным фигурам будет применена тень.

Вы можете настроить смещение и размытие, чтобы контролировать распространение тени. А альфа-канал shadowColor позволяет создавать более мягкие прозрачные тени.

Заключение

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

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