Noob в AS3 растрового материала ...AS3 Преобразование ByteArray в Bitmap
, когда я пытаюсь делать следующий код он не
bmd.setPixels (bmd.rect, decodeValue);
и сообщение об ошибке: Ошибка: Ошибка # 2030: Был обнаружен конец файла.
Ситуация заключается в том, что у меня есть изображение как двоичное в базе данных путем преобразования byteArray, и теперь я хотел бы получить его и преобразовать обратно в изображение.
Просто, чтобы очистить это ByteArray, нужно поместить в растровое изображение, а затем вы можете добавить в фильм клип правильно?
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.Bitmap;
import flash.display.BitmapData;
import com.dynamicflash.util.Base64;
var loader:Loader;
var req:URLRequest;
var orig_mc:MovieClip;
var copy_mc:MovieClip;
function loaderCompleteHandler(evt:Event) {
//swap data
var ldr:Loader = evt.currentTarget.loader as Loader;
var origImg:Bitmap = (ldr.content as Bitmap);
var origBmd:BitmapData = origImg.bitmapData;
trace(origImg.bitmapData);
trace(origImg.width);
trace(origImg.height);
//Convert image byteData into Base64 String
var byteArray:ByteArray = new ByteArray();
byteArray.writeObject(origBmd);
var encoded:String = Base64.encodeByteArray(byteArray);
trace("\nENCODED:\n" + encoded);
var decoded:ByteArray = Base64.decodeToByteArray(encoded);
trace("\nDECODED:\n" + decoded.toString());
// convert base64 string back into movieclip
var newBmd:BitmapData = new BitmapData(origImg.width,origImg.height,"true",0xFFFFFFFF);
newBmd.setPixels(origBmd.rect, decoded);**// THIS THROWS AN " Error #2030: End of file was encountered."**
var image:Bitmap = new Bitmap(newBmd, "auto", true);
copy_mc.addChild(image);
copy_mc.x = origImg.width;
}
loader = new Loader();
req = new URLRequest("C:\\Data\\cutcord.jpg");
loader.load(req);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler);
// movieclip to display original image
orig_mc = new MovieClip();
orig_mc.addChild(loader);
addChild(orig_mc);
// movieclip to display image copy
copy_mc = new MovieClip();
addChild(copy_mc);
Anyone can help would be very appreciated :)
Я делаю именно то, что вы поместили, но я был брошен с этой ошибкой: Ошибка: Ошибка # 2030: был обнаружен конец файла. это потому, что мой byteArray слишком велик? – Bruce
90068 - это длина, когда я делаю трассировку btw – Bruce
Есть ли способ рассчитать/получить оригинальные размеры от такого bytearray? – SzRaPnEL