AS3 - 是否有与 BitmapData.encode() 等效的解码()?

问题描述 投票:0回答:2

有没有办法在使用 BitmapData.encode() 后将 ByteArray 转回 BitmapData?

actionscript-3 bitmapdata
2个回答
4
投票

不,没有。您必须使用

Loader
加载编码的 JPEG 并通过加载的内容访问位图数据:

    var bitmap:Bitmap = new Bitmap(new BitmapData(100, 100, false, 0xFF0000));
    addChild(bitmap);

    var bytes:ByteArray = new ByteArray();
    bitmap.bitmapData.encode(bitmap.bitmapData.rect, new JPEGEncoderOptions(), bytes);
    bitmap.bitmapData.dispose();

    var loader:Loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(event:Event):void
    {
        var bd:BitmapData = Bitmap(LoaderInfo(event.target).content).bitmapData;

        bitmap.bitmapData = bd;
    });
    loader.loadBytes(bytes);

0
投票

AIR 50.0
一起推出,现在有
BitmapData.decode()

使用 ByteArray 中提供的数据将编码图像数据 (PNG/GIF89a/JPEG) 解压缩到新的 BitmapData 对象中。图像格式由运行时确定,并支持与 SWF 文件的 DefineBitsJPEG2 标记中提供的格式相同的格式。

https://airsdk.dev/reference/actionscript/3.0/flash/display/BitmapData.html#decode()

© www.soinside.com 2019 - 2024. All rights reserved.