22 août 2008
Resize d’image en AS3
Article publié dans la catégorie flash | lu 2963 fois |
Voila le premier article d’une série a venir sur la boite a outils en AS3. La boite a outils, vous savez, ce dossier que l’on ressort sur tout les projets pour y piocher nos briques favorites.
Aujourd hui, pour ce premier article, le resize d’image homothetique en AS3.
package { import flash.display.*; public class ResizeImage extends Sprite { public static function resizeMe(b:BitmapData, maxW:int, maxH:int):void { var widthMax:Number = maxW; var heigthMax:Number = maxH; var scaleInitX = widthMax/(b.width/b.scaleX); var scaleInitY = heigthMax/(b.height/b.scaleY); if(scaleInitX > 1){ scaleInitX = 1 } if(scaleInitY > 1){ scaleInitY = 1 } var rapport = b.width / b.height; if(b.height*scaleInitY> heigthMax){ scaleInitY = heigthMax/b.height; } if (b.width * scaleInitX > widthMax){ scaleInitX = widthMax/b.width; } if(scaleInitX > scaleInitY){ b.scaleX = scaleInitY; b.scaleY = scaleInitY; }else{ b.scaleX = scaleInitX; b.scaleY = scaleInitX; } } } }
La classe est en static ce qui permet de simplifier la procedure d’appel.
Pas besoin de declarer une instance de l’objet pour l’utiliser. L’appel ce fait de la maniere suivante:
import com.ResizeImage; ( ... ) ResizeImage.resizeMe(oImage, iWidth, iHeight);