Il existe une bonne solution, donné par Zemax, qui consiste à redimensionner étape par étape (de 50%), mais bon, vu que ton ratio ést déjà à 0.5, ce n'est pas ça le problème. Voici le lien : http://www.envrac.org/index.php/2008/06/23/181-reduction-de-bitmapdata-smoothing-pourquoi-c-est-pas-beau-et-comment-ameliorer En esperant avoir pu t'aider !
Le 22 avril 2010 17:07, Niranjan <[email protected]> a écrit : > > Bonjour à tous (premier message dans ce groupe), > > Je bosse avec Flex Builder et, pour redimentionner des images en AIR, > j'utilise la bibliothèque corelib et je fais comme ça : > > import com.adobe.images.*; > > import flash.display.BitmapData; > import flash.display.Loader; > import flash.events.Event; > import flash.filesystem.File; > import flash.filesystem.FileStream; > import flash.geom.Matrix; > import flash.net.URLRequest; > import flash.utils.ByteArray; > > private var loadeur:Loader; > > private function recupImage():void > { > //l'image de départ est sur le bureau (par exemple) > var ficDepart:File = > File.desktopDirectory.resolvePath("imageDepart.jpg"); > var requete:URLRequest = new URLRequest(ficDepart.url); > this.loadeur = new Loader(); > > > this.loadeur.contentLoaderInfo.addEventListener(Event.COMPLETE,this.redimensionner); > this.loadeur.load(requete); > } > > private function redimensionner(e:Event):void > { > var rapport:Number = 0.5; > var nvHauteur:int = this.loadeur.height * rapport; > var nvLargeur:int = this.loadeur.width * rapport; > > //redimensionnement de l'image de départ en conservant les > proportions > var matrice:Matrix = new Matrix; > matrice.scale(rapport,rapport); > > //dessin de l'image > var bmp:BitmapData = new > BitmapData(nvLargeur,nvHauteur,false,0x666666); > bmp.draw(this.loadeur,matrice,null,null,null,true); > > //création du fichier final > var ficArrivee:File = > File.desktopDirectory.resolvePath("imageArrivee.jpg"); > var stream:FileStream = new FileStream; > stream.open(ficArrivee, FileMode.WRITE); > var encodeur:JPGEncoder = new JPGEncoder(100); > var data:ByteArray = encodeur.encode(bmp); > stream.writeBytes(data, 0, data.length); > stream.close(); > } > > Ça marche bien mais la qualité de l'image d'arrivée, c'est pas ça. C'est > pas l'horreur mais ça reste en-dessous de ce que peut faire un simple > logiciel de retouche d'image. Est-ce que quelqu'un aurait une meilleure > solution à proposer ? > > -- > Vous recevez ce message, car vous êtes abonné au groupe Google > Groupes FCNG. > Pour envoyer un message à ce groupe, adressez un e-mail à > [email protected]. > Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse > [email protected] <fcng%[email protected]>. > Pour plus d'options, consultez la page de ce groupe : > http://groups.google.com/group/fcng?hl=fr > > -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes FCNG. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/fcng?hl=fr
