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

Som*_*ody 6 flash actionscript

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

对于图像上传者来说,这将是一个很好的解决方案.:)

谢谢 ;)

Cor*_*rey 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());
}
Run Code Online (Sandbox Code Playgroud)

我不得不在这里追踪班级.

另外,我找到了另一个Base64类,但是没有在这里测试 ...但看起来它的工作方式类似.

希望有所帮助.


Mic*_*ert 2

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

如果您仍然想这样做,您应该通过以下链接下载 Base64 类:http://garry-lachman.com/2010/04/21/base64-encoding-class-in-actionscript-3/

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

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

希望这可以帮助 :)