Bonjour,
J'ai créer un outil de chargement d'image et d'exportation vers serveur.
Je souhaitai qu'il redimensionne mon image et que je puisse effectuer des rotations dessus.
Tout cela fonctionne a l'affichage mais quand je l'envoi sur le serveur l'image est celle que j'ai chargé avant modification.
J'ai remarqué que .content est un sur lequel j'effectue la rotation et l'envoi est une propriété en lecture seule.
Est il possible de sauvegarder se qui est dans mon "containers.UILoaders" (affimage)?
Je vous met mon code si quelqu'un a une idée.
var container:Loader;
var test1:UILoader = UILoader(affimage);
var nbrot:int=0;
var largeurx:int=0;
var hauteury:int=0;
chargerbt.addEventListener(MouseEvent.CLICK, init);
chargerbt.addEventListener(MouseEvent.CLICK, supprimer);
supprimerbt.addEventListener(MouseEvent.CLICK, supprimer);
rotationbt.addEventListener(MouseEvent.CLICK, rotationimage);
validerbt.addEventListener(MouseEvent.CLICK, validerimage);
function init(evt:Event):void {
var unFichier:FileReference = new FileReference();
unFichier.addEventListener(Event.SELECT, apresSelection);
//Gestion des fichiers visualisé
var typeFichier:FileFilter=new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)","*.jpg;*.jpeg;*.gif;*.png");
unFichier.browse([typeFichier]);
//après la sélection de l'image
function apresSelection(evt:Event):void {
var cible:FileReference=evt.currentTarget as FileReference;
cible.load();
cible.addEventListener(ProgressEvent.PROGRESS, onProgress);
cible.addEventListener(Event.COMPLETE, onComplete);
}
//à la fin du chargement de l'image
function onComplete(evt:Event):void {
var cible:FileReference=evt.currentTarget as FileReference;
trace("Fichier chargé avec succés");
container = new Loader();
container.loadBytes(cible.data);
container.contentLoaderInfo.addEventListener(Event.COMPLETE,onDataParsed);
}
//après le chargement complet des données de l'image dans "container", on l'affiche et on la redimensionne
function onDataParsed(evt:Event):void {
test1.addChild(container);
trace(affimage.parent);
//redimensionnement de l'image
container.content.scaleX=container.scaleY=1;
var scaleH:Number=1;
var scaleL:Number=1;
if (container.content.height>affimage.height) {
scaleH=affimage.height/container.content.height;
if (container.content.width>affimage.width) {
}
scaleL=affimage.width/container.content.width;
}
container.content.scaleX=container.content.scaleY=Math.min(scaleL,scaleH);
}
//Pendant le chargement,
function onProgress(evt:ProgressEvent):void {
trace("Loaded " + evt.bytesLoaded + " of " + evt.bytesTotal + " bytes.");
}
}
//Fonction de suppression d'image chargé
function supprimer(evt:Event):void {
trace(affimage.numChildren);
var lng:int=affimage.numChildren-1;
for (var i:int = lng; i>=0; i--) {
affimage.removeChildAt(i);
}
trace(affimage.numChildren);
if(largeurx>0){
container.x=0;
}
if(hauteury>0){
container.y=0;
}
nbrot=0;
}
//Fonction rotation 90°
function rotationimage(evt:Event):void {
nbrot++;
if(nbrot == 1)
{
largeurx = container.content.height;
}
if(nbrot == 2)
{
hauteury = container.content.width;
largeurx = container.content.height;
}
if(nbrot == 3)
{
largeurx = 0;
hauteury = container.content.width;
}
if(nbrot == 4)
{
largeurx = 0;
hauteury = 0;
nbrot = 0;
}
container.content.x=largeurx;
container.content.y=hauteury;
container.content.rotation += 90;
trace("Rotation de 90° effectué");
trace("largeur="+container.content.width+" Hauteur="+container.content.height);
}
function validerimage(evt:Event):void {
//convertion du Loader en bitmap
var image:Bitmap = Bitmap(container.content);
//Convertion du Bitmap en BitmapData
var bitmap:BitmapData = image.bitmapData;
// encodage au format PNG
var fluxBinairePNG:ByteArray = PNGEncoder.encode ( bitmap );
// entête HTTP au format brut
var enteteHTTP:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
//URL du scripte de sauvegarde
var requete:URLRequest = new URLRequest("http://localhost/export.php?nom=sketch.png");
requete.requestHeaders.push(enteteHTTP);
requete.method = URLRequestMethod.POST;
requete.data = fluxBinairePNG;
navigateToURL(requete, "_blank");
}