una subir previsualizar poner mostrar insertar imagenes imagen fondo con carpeta cargar javascript html5

javascript - subir - previsualizar imagen input file html



Cómo subir imágenes a lienzo HTML5 (3)

Actualmente estoy usando http://paperjs.org para crear una aplicación de dibujo lienzo HTML5. Quiero que los usuarios suban imágenes al lienzo. Sé que necesito hacer un inicio de sesión y un registro, pero ¿hay alguna forma más fácil? He visto la carga de arrastrar y soltar HTML5.


Supongo que quiere decir, cargar una imagen en el lienzo y no cargar la imagen desde el lienzo.

Probablemente sea una buena idea leer todos los artículos del lienzo que tienen aquí https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Using_images

Pero, básicamente, lo que desea hacer es crear una imagen en javascript y establecer la imagen.src = en la ubicación del archivo. En el caso de que el usuario cargue las imágenes en su extremo, querrá utilizar la API del sistema de archivos.

Presentamos un breve ejemplo aquí: http://jsfiddle.net/influenztial/qy7h5/

function handleImage(e){ var reader = new FileReader(); reader.onload = function(event){ var img = new Image(); img.onload = function(){ canvas.width = img.width; canvas.height = img.height; ctx.drawImage(img,0,0); } img.src = event.target.result; } reader.readAsDataURL(e.target.files[0]); }


Uno no necesita un FileReader *, es mejor usar el método URL.createObjectURL , que creará un enlace simbólico directamente al archivo en el disco. Esto incurrirá en menos uso de memoria y tendrá el beneficio adicional de tener solo un evento asíncrono que esperar (el de img.onload ).

document.getElementById(''inp'').onchange = function(e) { var img = new Image(); img.onload = draw; img.onerror = failed; img.src = URL.createObjectURL(this.files[0]); }; function draw() { var canvas = document.getElementById(''canvas''); canvas.width = this.width; canvas.height = this.height; var ctx = canvas.getContext(''2d''); ctx.drawImage(this, 0,0); } function failed() { console.error("The provided file couldn''t be loaded as an Image media"); }

<input type="file" id="inp"> <canvas id="canvas"></canvas>

* IIRC solo unas pocas versiones de Chrome eran compatibles con FileReader y aún no eran compatibles con URL.createObejctURL, por lo que si tiene como objetivo estas mismas versiones, es posible que necesite FileReader.


<script> window.onload = function() { var canvas=document.getElementById(“drawing”); // grabs the canvas element var context=canvas.getContext(“2d”); // returns the 2d context object var img=new Image() //creates a variable for a new image img.src= “images/vft.jpg” // specifies the location of the image context.drawImage(img,20,20); // draws the image at the specified x and y location } </script>

Ver Demo