AS3 snippet : effectuer une rotation « miroir » sur un Bitmap.
Il faut utiliser la classe Matrix, qui dispose de propriétés pour appliquer des opérations matricielles (translation, mise à l'échelle, rotation, skew).
Original | Miroir |
---|---|
Le code suit.
/** * Retourne l'image passée en paramètre pour lui appliquer un effet miroir * @param ImageOriginale l'image à retourner verticalement (les coordonnées Y restent im * @return */ public function mirror(ImageOriginale:Bitmap):Bitmap { var ImageMiroir:Bitmap = new Bitmap(); //Construction de la matrice de transformation. //scaleX = -1 //Translation X : var Miroir:Matrix = new Matrix( -1, 0, 0, 1, ImageOriginale.width, 0 ); //Construction des données, en dessinant ImageOriginale avec la matrice var MiroirData:BitmapData = new BitmapData(ImageOriginale.width,ImageOriginale.height); MiroirData.draw(ImageOriginale, Miroir); ImageMiroir.bitmapData = MiroirData; return ImageMiroir; }
Oh, et juste pour le fun : si vous n'avez pas besoin d'inverser des données de pixels, vous pouvez tout simplement utiliser scaleX sur -1 qui a le même effet au rendu ;)