[Resolvido] Erro com JPGEnconder
Amigos, estava fazendo uma experiencia.
Queria carregar uma imagem e duplica-la utilizando bitmap, bitmapdata e JPGEnconder. Mas na hora de 'redesenhar' a imagem fica dando esse erro: Error #2030: O fim do arquivo foi encontrado.
Segue a classe
package {
import flash.display.MovieClip;
import flash.display.Loader;
import flash.display.Bitmap;
import flash.events.Event;
import flash.net.URLRequest;
import flash.events.MouseEvent;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.utils.ByteArray;
import flash.utils.Endian;
import com.adobe.images.JPGEncoder;
import com.adobe.images.PNGEncoder;
import flash.net.FileReference;
public class Main extends MovieClip {
private var loader:Loader;
private var bm:Bitmap;
private var count:uint = 1;
public function Main() {
this.loaderInfo.addEventListener(Event.COMPLETE, init);
}
private function init(e:Event):void {
this.loaderInfo.removeEventListener(Event.COMPLETE, init);
config();
}
private function config():void {
loader = new Loader();
loader.load(new URLRequest("[http://h.imguol.com/1008/27dutra_p.jpg"](http://h.imguol.com/1008/27dutra_p.jpg)));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, insere);
}
private function insere(e:Event):void {
bm = Bitmap(e.currentTarget.content as Bitmap);
addChild(bm);
stage.addEventListener(MouseEvent.CLICK, duplica);
}
private function duplica(e:MouseEvent):void {
var bmd:BitmapData = new BitmapData(bm.width, bm.height, true,0);
var bm2:Bitmap = new Bitmap(bmd);
//var a:ByteArray = bm.bitmapData.getPixels(bm.bitmapData.rect);
//a.position = 0;
//bmd.setPixels(bm.bitmapData.rect, a);
var encoded:JPGEncoder = new JPGEncoder(100);
var a:ByteArray = encoded.encode(bm.bitmapData);
a.position = 0;
bmd.setPixels(bm.bitmapData.rect, a);
addChild(bm2);
bm2.x = bm2.width * count;
count++;
}
}
}
Porém se eu não utilizar o JPGEncoder e ao invez disso utilizar o getPixels o erro não acontece e a imagem é duplicada, alguem sabe onde posso estar errando?
Discussão (2)
Carregando comentários...