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

Buenas,

Tengo el siguiente código relacionado con el tema de pixelado del hilo de desafíos javascript 2014:
http://jsfiddle.net/jefebrondem/745Ds/4/

El problema es con el siguiente código en particular:
Código Javascript:
Ver original
  1. btn.onclick=function(){
  2.         btn.setAttribute("disabled","disabled");
  3.         var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
  4.         console.log( imageData.data[0] );
  5.         //setInterval( function(){
  6.             console.time( 'a' );
  7.             var copy = Object.create( imageData );
  8.             console.log( copy.data[0] );
  9.             var newImageData = pixelar(copy,canvas.width,canvas.height,pixeles);
  10.             console.timeEnd( 'a' );
  11.             console.log( newImageData.data[0] );
  12.             ctx.putImageData( newImageData, 0, 0);
  13.             console.log('eo');
  14.         //},1000 );
  15.         //console.log( imageData.data[0] );
  16.     }
Desearía conservar una copia del elemento imageData para poder pixelarlo de varias formas a partir del original. Para ello he creado una copia con la función Object.create y he pasado esta copia para pixelar. Todo funciona bien hasta que paso el resultado de la función pixelar al argumento de putImageData. He debugueado y no acabo de entender por qué, pues newImageData es también del tipo ImageData.

Un saludo y gracias!
__________________
github.com/xgbuils | npm/xgbuils