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].
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/fcng?hl=fr