我必须将一个位图保存到一个共享对象....我在网上看到,为了做到这一点,我将不得不转换成一个bytearray ..但我不知道该怎么做...可以有人请逐步向我解释如何将位图转换为bytearray ..
这是我正在使用的代码
var btm:BitmapData;
var x_d:Array = new Array();
orange.addEventListener( MouseEvent.CLICK, firstc);
function firstc (x:MouseEvent){
btm = new BitmapData(200,200);
x_d[0] = new Bitmap (btm);
addChild(x_d[0]);
btm.draw (orange);
gotoAndStop(3);
};
答案 0 :(得分:3)
如果你想要原始数据,你应该使用getPixels()方法,但如果你想存储压缩为jpg或png的bitmapdata,请执行以下操作:
<强> PNG 强>
btm = new BitmapData(200,200);
...
var stream:ByteArray = PNGEncoder.encode( btm );
<强> JPG 强>
btm = new BitmapData(200,200);
...
var jpgEncoder:JPGEncoder = new JPGEncoder( 90 );
var stream:ByteArray = jpgEncoder.encode( btm );
对于PNGEncoder和JPGEncoder类使用as3corelib
如果您使用Flash Player 11.3及更高版本定位用户,则可以使用native encoder