0

我有一个在 Adob​​e AIR 中开发并使用适用于 iOS 的 Flex SDk 4.6 编译的应用程序。该应用程序有一个模块,用户可以在其中将当前屏幕保存到应用程序存储。这工作正常,但保存图像大约需要 6-8 秒。

我正在使用 bitmapdata 来绘制舞台,然后使用 jpgencoder 将其转换为 bytearray,然后使用 File reference 将其保存到 apptorage。

有人可以告诉我这是捕获图像的正确且唯一的方法,还是在iOS上的AIR方面有更好的替代方法?

这是我的代码

        var bmp:BitmapData  =   new BitmapData(640,960,false,0)
        bmp.draw(this);
        //
        var je:JPGEncoder        =  new JPGEncoder();
        var b:ByteArray     =   je.encode(bmp);
        var saveFileName        =   String( new Date().milliseconds )  + ".jpg";
        var cropFile:File   =   appDir.resolvePath(saveFileName)

        var stream          =   new FileStream();
        stream.open(cropFile, FileMode.WRITE);                         

        stream.writeBytes(b,0,b.bytesAvailable);
        stream.close();
        bmp.dispose();
4

2 回答 2

0

如果你想减少捕获时间,也许你可以使用原生扩展。在 ios 上有一个名为 UIGetScreenImage 的 API。我认为它必须非常快。

于 2012-09-16T13:50:42.117 回答
0

对于那些寻找解决方案的人,请访问http://www.labs.saachitech.com/2012/10/12/capture-image-on-a-adobe-ios-application-and-save-to-ios-device -disk/并下载 swc 和 ane 文件,以便在 iOS 设备上更快地保存位图数据。

于 2012-10-12T17:49:37.493 回答