Javascript Canvas и CSS цвета

185
16 июня 2018, 08:30

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

Для этого я использую canvas и функцию ctx.getImageData и получаю массив с нужными цветами rgba.

С помощью этого массива можно повторить цвет, в рамках самого Canvas, но если попытаться применить этот цвет на стили CSS, то цвет будет другой.

Как я понимаю, между цветовой схемой Canvas и CSS существуют различия. Как построить JavaScript-функцию, которая бы устраняла эти различия?

UPD: я создал небольшой пример.

Там можно увидеть три элемента — широкий div, с цветом rgb(36,43,51), внутри которого находится элемент Canvas, на котором размещено изображение, состоящее из фона такого же цвета и белой полосы слева, и ниже него элемент img с тем же содержимым.

Вы не увидите разницы между цветами div и img, потому что они одни и те же.

Но изображение, отображаемое внутри Canvas имеет совсем другой цвет и заметно выделяется на общем фоне.

Как я понимаю, использование функции ctx.getImageData показывает правильные цвета и для CSS, и для Canvas, но проблема в том, что все цвета внутри тега canvas искажаются.

READ ALSO
Как избавиться от полотна циклов

Как избавиться от полотна циклов

У меня есть кодБольшой, с вложенными циклами

188
Как задать цвет :after у элемента?

Как задать цвет :after у элемента?

У меня есть скрипт выбора цвета, который задает цвет нужного элемента:

178
Использование JS и SVG

Использование JS и SVG

Вопрос касается JS + SVGДолго думал сюда написать, но уже несколько дней не могу найти решение, прошу помочь разобраться

197
Есть ли обработчик события Click у элемента?

Есть ли обработчик события Click у элемента?

Подвесил на кнопку Next слайдера Slick свой обработчик события ClickОн срабатывает один раз, а потом перестает

172