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

Répondre à