0

我觉得好像我在这里错过了一些非常基本的东西。我正在尝试添加一个选项,以允许从 Android 应用程序以 PNG 格式导出图像。该代码似乎在我的 Droid Bionic 上运行良好,并且不会出错,但之后我在手机存储中的任何地方都找不到图像。它要去哪里?是否可以访问从 AIR 应用程序导出的图像?我错过了一些完全明显的东西吗?

bdToSave.draw(screenshot);
var arrBytes:ByteArray = PNGEncoder.encode(bdToSave);
var file:File = File.desktopDirectory.resolvePath("testimage.png");
var fileStream:FileStream = new FileStream();

try {
    fileStream.open(file, FileMode.WRITE);
    fileStream.writeBytes(arrBytes);
    fileStream.close();
}
catch (errObject:Error) {
    Env.outBox.text = "Error writing image file!"
}

我还使用 CameraRoll 类成功导出图像并轻松找到生成的文件,但那里的图像似乎使用了错误的 JPEG 压缩。所以我希望改用 FileStream 会产生更好的图像。

4

1 回答 1

0

File.desktopDirectoryAndroid 上不存在。使用File.applicationDirectoryFile.applicationStorageDirectory写入内部磁盘。您几乎总是想使用 applicationStorageDirectory,我相信它实际上是您可以在 iOS 上用于写入数据的唯一一个。对于写入外部驱动器,这在我方面未经测试,我相信你想使用File.documentsDirectory. 追踪File.documentsDirectory.nativePath以验证这是正确的路径。

考虑到现在发布的大多数高端手机包含 SD 卡可能是明智的。如果这意味着要成为大众市场产品,我建议改用 applicationStorageDirectory。

于 2013-05-02T16:15:18.593 回答