如何将位图转换为bytearray?

时间:2013-01-06 21:51:27

标签: actionscript-3

我必须将一个位图保存到一个共享对象....我在网上看到,为了做到这一点,我将不得不转换成一个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);

    };

1 个答案:

答案 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