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, как можно решить проблему?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы