我想知道是否有任何方法可以确定解码为ByteArray的图像的宽度和高度。例如,在下面,任何方法来确定数据的这些值?
var data:ByteArray = new ByteArray();
data = encoded_image.decode(byteArrayData);
答案 0 :(得分:3)
你可以这样做:
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);
}
缺点是整个图像将被解码,因此如果您实际上不需要图像,只需要宽度和高度,您可能实际上想要查看字节数组并解码文件格式。 (更棘手,但
答案 1 :(得分:0)
你可以从标题中读取它。 但是,每种文件类型的标题都不同。 看看自定义图像解码器,这是他们所做的事情之一。
这是pngs的一个: