Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

137
Visualizações
El uso de canvas drawImage arroja un error en Next.js

Estoy tratando de cargar una imagen local en el elemento del lienzo, pero arroja un error:

Error al ejecutar 'drawImage' en 'CanvasRenderingContext2D': el valor proporcionado no es del tipo '(CSSImageValue o HTMLCanvasElement o HTMLImageElement o HTMLVideoElement o ImageBitmap o OffscreenCanvas o SVGImageElement o VideoFrame)'.

Funciona bien cuando dibujo o hago cosas con la ventana del lienzo, pero cuando intento importar una imagen usando image = Image(gImage.default) ¿se rompe? Estoy tratando de seguir un tutorial hecho para reaccionar en Next.js, ¿es algo por eso?

Mi código:

 import React, { useRef, useEffect, useState } from "react"; import Image from "next/image"; const Canvas = (props) => { const canvasRef = useRef(null) // load image const gImage = require("../public/map.png") const image = Image(gImage.default) useEffect(() => { const someTry = () => { } const canvas = canvasRef.current const context = canvas.getContext('2d') // our first draw context.fillStyle = "#000000" context.fillRect(0, 0, context.canvas.width, context.canvas.height) console.log(image) someTry() // const mapImage = document.createElement('img') // mapImage.src = '../public/map.png' // context.drawImage(image, 0, 0) image.onload = () => { context.drawImage(image, 0, 0) } }, []) return <canvas ref={canvasRef} {...props} width={288} height={480} /> } export default Canvas

Pensé que esto era algo relacionado con getStaticProps pero cuando trato de pasar una imagen desde allí, dice que el método Image() no está definido, entonces, ¿hay alguna forma de evitar esto? ¿Y por qué está pasando?

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El constructor de imágenes que está tratando de usar no es de next/image . Debe eliminar la import Image from "next/image" de las importaciones.

También debe mover la inicialización de la variable de image dentro de useEffect y establecer la fuente de la imagen en "/map.png" .

 import React, { useRef, useEffect } from "react"; const Canvas = (props) => { const canvasRef = useRef(null) useEffect(() => { const image = new Image() image.src = "/map.png" const canvas = canvasRef.current const context = canvas.getContext('2d') context.fillStyle = "#000000" context.fillRect(0, 0, context.canvas.width, context.canvas.height) image.onload = () => { context.drawImage(image, 0, 0) } }, []) return <canvas ref={canvasRef} {...props} width={288} height={480} /> } export default Canvas
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda