我有一个在Adobe AIR中开发的应用程序,并使用适用于iOS的Flex SDk 4.6进行编译。该应用程序有一个模块,用户可以将当前屏幕保存到appstorage。这工作正常,但保存图像大约需要6-8秒。
我使用bitmapdata绘制舞台,然后使用jpgencoder将其转换为bytearray,然后使用File引用将其保存到appstorage。
有人可以告诉我这是否是捕获图像的唯一方法,或者在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();
答案 0 :(得分:0)
如果您想减少捕获时间,也许您可以使用原生扩展。 在ios上有一个名为UIGetScreenImage的API。我认为它必须非常快。
答案 1 :(得分: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设备上更快地保存位图数据。