Определение цвета элемента в canvas при клике

196
31 октября 2018, 19:40

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

Answer 1

canvas - определение цвета пикселя по клику

const canvas = document.createElement('canvas') 
const w = canvas.width = 200 
const h = canvas.height = 200 
canvas.style.border = 'solid 1px' 
const ctx = canvas.getContext("2d"); 
ctx.fillStyle = "grey"; 
ctx.fillRect(0, 0, w, h); 
ctx.fillStyle = "rgb(255,0,0)"; 
ctx.fillRect(0, 10, 20, 20); 
ctx.fillStyle = "rgb(0,255,0)"; 
ctx.fillRect(20, 10, 20, 20); 
ctx.fillStyle = "rgb(0,0,255)"; 
ctx.fillRect(40, 10, 20, 20); 
canvas.onclick = function(e) { 
  const x = e.offsetX; 
  const y = e.offsetY; 
  const img_data = ctx.getImageData(x, y, 1, 1);//ImageData 
  const pix = img_data.data; 
  // console.dir(pix) 
  const red = pix[0]; 
  const green = pix[1]; 
  const blue = pix[2]; 
  const alpha = pix[3]; 
  console.log(`красный ${red} зелёный ${green} голубой ${blue} прозрачность ${alpha}`); 
  document.body.style.backgroundColor = `rgba(${pix.join(',')})` 
} 
document.body.appendChild(canvas)

https://developer.mozilla.org/ru/docs/Web/API/ImageData

READ ALSO
Стоит ли учить JavaScript как первый язык? [закрыт]

Стоит ли учить JavaScript как первый язык? [закрыт]

я хочу спросить стоит ли учить JavaScript как первый язык? Если нет, то посоветуйте какие стоит учить как первый язык?

144
как отправить json запрос через fetch и vuex

как отправить json запрос через fetch и vuex

Сделал поисковик по википедии по уроку https://wwwyoutube

197
AJAX-запрос для формы регистрации

AJAX-запрос для формы регистрации

Stack технологий - Nodejs, EJS, MongoDB, jQuery

197