Actionscript 3 从ByteArray获取图像大小

Actionscript 3 从ByteArray获取图像大小,actionscript-3,flash-cs5,Actionscript 3,Flash Cs5,我想知道是否有任何方法可以确定解码成字节数组的图像的宽度和高度。例如,在下面的示例中,有什么方法可以确定这些数据值 var数据:ByteArray=新的ByteArray() 数据=编码图像。解码(byteArrayData) 您可以这样做: var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded) loader.loadBytes(byteArray

我想知道是否有任何方法可以确定解码成字节数组的图像的宽度和高度。例如,在下面的示例中,有什么方法可以确定这些数据值

var数据:ByteArray=新的ByteArray()


数据=编码图像。解码(byteArrayData)

您可以这样做:

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


缺点是整个图像将被解码,因此如果您实际上不需要图像,而只需要宽度和高度,那么您可能实际上需要查看字节数组并解码文件格式。(更为棘手,但您可以从标题中读取。 但是,每种文件类型的标题都不同。 看看自定义图像解码器,这是他们做的事情之一

以下是PNG的一个:


我收到错误#2044:未处理的IOErrorEvent:.text=Error#2124:加载的文件是未知类型。我在将ByteArray传递到加载程序时收到错误。错误#2044:未处理的IOErrorEvent:.text=Error#2124:加载的文件是未知类型。可能您提供的ByteArray不好。字节数组来自哪里m?很好的一个!利克用了一个符咒:)
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);
}