Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

223
Vistas
JavaScript FileReader para leer archivos txt o de imagen y colocar contenido en un lienzo

A continuación se muestra parte de una aplicación de dibujo web que utiliza HTML5 Canvas.

Mi siguiente paso es permitir que los contenidos de los archivos locales se seleccionen y representen en el lienzo. Los archivos pueden ser txt o formatos de imagen comunes como png .

En el código, el archivo se selecciona, luego, si la extensión es txt , el contenido se trata como texto, y si la extensión es png , los datos de la imagen deben leerse y representarse en el lienzo.

Sin embargo, con el archivo png, aparece el error:

 Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The provided value is not of type '(CSSImageValue or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or OffscreenCanvas or SVGImageElement or VideoFrame)'.

Aquí está el código:

 <script> function addTxtFileContent(e) { console.log('addTxtFileContent'); var fc = e.target.result; console.log('addFileContent: ' + fc); var fsize = document.getElementById("TextFontSize").value; var font = ""; if ( textitalic ) font += 'italic '; if ( textbold ) font += 'bold '; font += fsize + 'px ' + document.getElementById("TextFontList").value; console.log('addFileContent font: ' + font ); context.font = font; context.fillStyle = scolor; context.textAlign = textalign; context.fillText(fc, 400, 200); } function addImgFileContent(e, img) { console.log('addImgFileContent'); context.drawImage(img, 100, 100); } function readFile(e) { console.log('readFile'); var file = e.target.files[0]; if (!file) return; var reader = new FileReader(); var ext = String(file.name).split('.').pop(); console.log('readFile name: ' + file.name + ' ext:' + ext); switch ( ext ) { case 'txt': reader.onload = function(e) { addTxtFileContent(e); } reader.readAsText(file); break; case 'png': reader.readAsDataURL(file); reader.onload = function (e) { var image=new Image(); image.src=e.target.result; image.onload = function () { addImgFileContent(image); // <<< Error reported here }; } } } </script>
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda