JavaScript: сохранить значение цвета каждого пикселя изображения

Что я хочу сделать: загрузить изображение и считать его попиксельно, чтобы сохранить значение каждого пикселя.

Что я делаю:

let canvas = document.createElement("canvas");
let image = document.createElement("img");
image.setAttribute("src", imagePath);

canvas.width = image.width;
canvas.height = image.height;

let context = canvas.getContext("2d");
context.drawImage(image, 0, 0, image.width, image.height);

~ Попиксельное считывание изображения с использованием функции getImageData ~

Но есть проблема: размеры изображения равны 0.


Ответы (1 шт):

Автор решения: Ein

Думаю стоит дождаться когда картинка загрузится

let imagePath = "https://via.placeholder.com/150";

let canvas = document.createElement("canvas");
let image = document.createElement("img");

image.onload = function () {
  canvas.width = image.width;
  canvas.height = image.height;

  let context = canvas.getContext("2d");
  context.drawImage(image, 0, 0, image.width, image.height);

  document.body.appendChild(canvas);
};
image.setAttribute("src", imagePath);

→ Ссылка