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() растровых данных. Для определения размера и байтового массива в качестве содержимого требуется прямоугольник. Этот метод синхронный

Другие вопросы по тегам