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