0

我使用 AIR 上的bulkloader库下载图像,然后使用AS3corelib我尝试使用以下方法在本地保存文件:

var byteArray:ByteArray = jpgEncoder.encode( loader.getContent("IMG_0004.JPG") );
stream.writeBytes(byteArray);
stream.close();

但我收到这个错误:

TypeError:错误 #1034:类型强制失败:无法将 flash.display::Bitmap@8349a81 转换为 flash.utils.ByteArray。

我不知道如何解决这个问题。

4

2 回答 2

3

encode函数需要一个BitmapData对象,但您给它一个Bitmap.

所以你应该能够做到这一点:

var byteArray:ByteArray = jpgEncoder.encode( Bitmap(loader.getContent("IMG_0004.JPG")).bitmapData );
于 2013-02-19T12:22:50.893 回答
1

DomingoSL,所以你原来的问题已经解决了,现在你的问题是 jpeg 编码。是的,标准库中的 jpeg 编码器非常慢。它是您可以使用的最慢的编码器。阅读:http ://www.bytearray.org/?p=775 。提示:阅读所有评论,你会得到你对无声保存的答案。

于 2013-02-19T16:10:25.303 回答