Actionscript:image到base64字符串可能吗?

时间:2011-07-06 12:27:02

标签: flash actionscript

是否可以将所选图像转换为base64编码的字符串?

对于图像上传者来说,这将是一个简单易用的解决方案。 :)

谢谢;)

2 个答案:

答案 0 :(得分:7)

如果您想对已加载图像的byteArray进行编码,可以使用mx.utils Base64Encoder中的Base64Encoder类。

类似的东西:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.load(new URLRequest("img.jpg"));

function loadComplete(e:Event):void {
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadComplete);
    var bmd:BitmapData = Bitmap(e.target.content).bitmapData;
    var ba:ByteArray = bmd.getPixels(new Rectangle(0,0,bmd.width,bmd.height));
    var b64:Base64Encoder = new Base64Encoder();
    b64.encodeBytes(ba);
    trace(b64.toString());
}

我必须追踪班级here

此外,我发现了另一个Base64类,但尚未测试here ...但看起来它的工作方式类似。

希望有所帮助。

答案 1 :(得分:2)

您可以将图像保存为Base64字符串,但我不推荐它。我尝试过这样做,它会大大减慢你的应用程序。

如果您仍想这样做,请在此链接下载Base64级:http://garry-lachman.com/2010/04/21/base64-encoding-class-in-actionscript-3/

如果然后从图像中获取bitmapData,则可以调用.getPixels() - 方法,该方法返回一个bytearray。可以使用链接中的类将此bytearray转换为Base64字符串。

如果要从Base64字符串加载图像,可以创建一个Loader对象,并使用loadBytes()方法加载通过解码Base64字符串得到的byteArray。

希望这会有所帮助:)