Получение размера изображения из ByteArray - PullRequest
5 голосов
/ 25 октября 2011

Мне интересно, есть ли способ определить ширину и высоту изображения, которое декодируется в ByteArray. Например, в приведенном ниже способе определить эти значения для данных?

var data: ByteArray = new ByteArray ();

data = encoded_image.decode (byteArrayData);

Ответы [ 2 ]

3 голосов
/ 26 октября 2011

Вы можете сделать это так:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded)
loader.loadBytes(byteArrayData);

-

function onLoaded(e:Event):void
{
    var loader:Loader = Loader(e.target.loader);
    var bitmapData:BitmapData = Bitmap(e.target.content).bitmapData;

    width = bitmapData.width;
    height = bitmapData.height;

    // cleanup
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoaded);
}

Недостатком является то, что все изображение будет декодировано, так что если вам на самом деле не нужноизображение, но только ширину и высоту, вы, возможно, захотите посмотреть в байтовом массиве и декодировать формат файла.(Более хитрый, но

0 голосов
/ 22 мая 2013

вы можете прочитать это из шапки.Заголовки различны для каждого типа файла.посмотрите на пользовательские декодеры изображений, это одна из вещей, которые они делают.

вот одна для PNG:

http://ionsden.com/content/pngdecoder

...