Votre lecteur Flash n'est pas à jour. Installer la dernière version
Home » Blog » Découper une zone d'image en AS3

Découper une zone d'image en AS3

Save to slashdot Add To Del.icio.us Digg This Fav This With Technorati Fav This With yahoo Fav This With google Bookmark this site with Windows Live Favorites Add to furl

Tags : AS3

Voici une petite astuce qui permet d'optimiser une application Flash. Plutôt que d'importer les images en MovieClip, ce qui se veut être couteux en terme de performance, il vaut mieux passer par la classe Bitmap et la classe BitmapData pour récupérer les pixels souhaités pour ensuite les afficher. Et par la même occasion, faire une seule requête sur le serveur est moins couteux (par exemple si vous avez une application nécessitant beaucoup de pictogrammes).
Voici comment faire.


Tout d'abord, il faut importer l'image de la bibliothèque :
[Embed(source = 'monImage.png')] private var MonImg:Class;
var pic : Bitmap = new MonImg();
Maintenant que nous avons notre image au format Bitmap, nous pouvons travailler dessus.
var bmp1 : BitmapData = pic.bitmapData; // récuperation des données
var bmp2 : BitmapData = new BitmapData(18, 16, true); // création de données, avec la taille de l'image finale
var rect : Rectangle = new Rectangle(0, 0, 18, 16); // création de la zone de découpage
var pt : Point = new Point(0, 0); // création du point de fixation de la zone découpée sur la nouvelle image
bmp2.copyPixels(bmp1, rect, pt); // on copie les pixels dans la nouvelle zone
var bmp : Bitmap = new Bitmap(bmp2); // création de notre nouvelle image

Et voilà, nous pouvons maintenant utiliser notre image comme nous le souhaitons, en l'ajoutant à la liste d'affichage par exemple.

Write a comment

  • Required fields are marked with *.

If you have trouble reading the code, click on the code itself to generate a new random code.