squadbrodyaga
@squadbrodyaga
帆は風を変えた

Почему я не могу использовать new Image() в Nuxt 3?

Здравствуйте, у меня есть вот такая функция, она получает цвет пикселя из края изображения:
function getPixel(url, x, y) {
  var img = new Image();
  img.src = url;
  var canvas = document.createElement('canvas');
  var context = canvas.getContext('2d');
  context.drawImage(img, 0, 0);
  return context.getImageData(x, y, 1, 1).data;
}


Но в Nuxt 3 она не работает, в консоли пишет Image из not defined, как можно решить проблему?
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
squadbrodyaga
@squadbrodyaga Автор вопроса
帆は風を変えた
Решил проблему. Для создания canvas и imgae я использовал библиотеку canvas,

import { createCanvas, loadImage } from 'canvas'

const image = await loadImage("https://рандомныйсайт/img.jpg", {
  crossOrigin: "anonymous"
})

const canvas = createCanvas(500, 500)
const context = canvas.getContext('2d')
context.drawImage(image, 0, 0, canvas.width, canvas.width)
const pixelData = context.getImageData(1, 1, 1 ,1)


Ключевым моментом является именно crossOrigin: "anonymous".
Отсутствие данных, какие настройки могут передаваться в поле options у метода loadImage()вводит в заблуждение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov
Помог ответ? Отметь решением.
как можно решить проблему?


Не вызывать функцию там где Image из not defined
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час