Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/12/2013, 05:35
Pantaláimon
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: putImageData no funciona con copia de ImageData

No he tenido mucho tiempo estos días, pero al final he probado de crear un canvas virtual como dijiste. Y de ahí ir obteniendo la imagen original para modificando siempre con respecto a esa imagen.

Código Javascript:
Ver original
  1. var canvas  = document.getElementById("canvas");
  2.     var context = canvas.getContext( '2d' );
  3.     canvas.width  = img.width;
  4.     canvas.height = img.height;
  5.     context.drawImage(img, 0, 0, img.width, img.height);
  6.  
  7.     var original = document.createElement("canvas");
  8.     var originalContext = original.getContext( '2d' );
  9.     original.width  = img.width;
  10.     original.height = img.height;
  11.     originalContext.drawImage(img, 0, 0, img.width, img.height);
  12.    
  13.     var btn=document.getElementById('btn');
  14.     btn.onclick=function(){
  15.         btn.setAttribute("disabled","disabled");
  16.  
  17.         setInterval( function(){
  18.             imageData = originalContext.getImageData(0, 0, original.width, original.height);
  19.             context.putImageData( pixelar(imageData,img.width,img.height,pixeles), 0, 0);
  20.         },100 );
  21.     }

A primera vista parece que no tenga sentido lo que he hecho, pues parece que siempre se va a mostrar lo mismo. Pero lo que ocurre es que la función pixelar no goza de transparencia referencial. Pues, pixelar ahora toma una porción aleatoria de píxeles y de ahí hace la media. Aquí el código entero:
http://jsfiddle.net/jefebrondem/745Ds/5/

Gracias!
__________________
github.com/xgbuils | npm/xgbuils