对于ByteArray形式的图像,其实用BitmapData的setPixels来处理我觉得不是一个很好的方法。除非你在处理前就已经确切地清楚图像的尺寸,否则根据ByteArray的内容来计算图像的尺寸,我觉得是很繁琐的。
但其实,换一个思路,用Loader来处理难道不行么。于是就有了下面这个方法。
import flash.net.URLRequest; import flash.net.URLLoader; import flash.events.Event; import flash.utils.ByteArray; import flash.display.Loader; var initHandler:Function = function(E:Event):void { trace (E.currentTarget.content);//这个就是一个bitmap对象 }; var steamHandler:Function = function(E:Event):void { var b:ByteArray = E.currentTarget.data as ByteArray; var l2:Loader = new Loader; l2.contentLoaderInfo.addEventListener(Event.INIT, initHandler); l2.loadBytes(b); }; var r:URLRequest = new URLRequest('247009_10151458099522746_393026092_n.jpg'); var l:URLLoader = new URLLoader; l.dataFormat = 'binary'; l.addEventListener(Event.COMPLETE,steamHandler); l.load(r);