Pixel art avec sa Webcam – Pixelate Me

Pour les fan de gros pixels voici un effet qui transforme n’importe quelle image ou vidéo en image pixelisée ! Utile aussi pour faire des transitions…

J’utilise des bitmapData, des rectangles, un peu de fillRect et de getPixel et le tour est joué !
Une seule fonction s’occupe de l’effet, vous pouvez l’utiliser sur les displayObject.

La fonction de l’effet pixel :

function pixelate(pContent:DisplayObject, pPixelSize:uint):Bitmap
{
     var i:uint, j:uint = 0;
     var s:uint = pPixelSize;
     var d:DisplayObject = pContent;
			
     var w:uint = d.width;
     var h:uint = d.height;
			
     //on crée un BitmapData de la source
     var bmpDataSrc:BitmapData = new BitmapData(w, h);
     bmpDataSrc.draw(d);
			
     //on crée un BitmapData pour créer le bitmap final
     var bmpDataPx:BitmapData = new BitmapData(w, h);
			
     //on crée un rectangle de la taille du nouveau pixel
     var rec:Rectangle = new Rectangle();
     rec.width = rec.height = s;
			
     //on boucle sur la hauteur et largeur de la source
     //en fonction de la taille du nouveau pixel
     for (i = 0; i < w; i += s)
     {
          for (j = 0; j < h; j += s)
          {
               rec.x = i;
               rec.y = j;
					
               bmpDataPx.fillRect(rec, bmpDataSrc.getPixel32(i, j));
          }
     }
			
     //on supprime le bitmapData source
     bmpDataSrc.dispose();
     bmpDataSrc = null;
			
     return new Bitmap(bmpDataPx);
}