Fil d'ariane : DaWeed.info » flash » Resize d’image en AS3

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

Commentaires