1

我必须将位图保存到共享对象中……我在网上读到,为了做到这一点,我必须将其转换为字节数组……但我不确定该怎么做……有人可以解释一下吗我一步一步地介绍如何将位图转换为字节数组..

这是我正在使用的代码

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

    };
4

1 回答 1

3

如果你想要原始数据,你应该使用getPixels()方法,但如果你想存储压缩为 jpg 或 png 的位图数据,请这样做:

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 及更高版本定位用户,则可以使用本机编码器

于 2013-01-07T09:10:28.917 回答