对于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);