ByteArray to BitmapData AS3
Я использую com.adobe.images.PNGEncoder для кодирования bitmapData в byteArray. Есть ли способ преобразовать byteArray обратно в bitmapData, НЕ используя Loader? Благодарю.
РЕДАКТИРОВАТЬ: причина, по которой я не хочу использовать Loader, заключается в том, что он асинхронный, и я не хочу реализовывать обработчики событий.
2 ответа
Следующее использует класс загрузчика, но синхронно.
var loader:Loader = new Loader();
loader.loadBytes(byteArray);
bmpData.draw(loader);
Изменить: Неважно, что loadBytes также асинхронный, документация говорит, что вам нужно дождаться события init. В чем причина нежелания слушать события? Это довольно распространенная практика в AS3.
Итак, вам нужно что-то вроде этого:
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, function(e:Event):void {
bmpData.draw(loader);
});
loader.loadBytes(byteArray);
Посмотрите на метод setpixels() растровых данных. Для определения размера и байтового массива в качестве содержимого требуется прямоугольник. Этот метод синхронный