Pixel art avec sa Webcam – Pixelate Me

Pixel art avec sa Webcam – Pixelate Me

vote

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.

Vous pouvez tester l’effet pixel sur un flux vidéo d’une webcam.
Pour les sources c’est ici.

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);
}