使用 writeImageToSavedPhotosAlbum 时获取文件名

Posted

技术标签:

【中文标题】使用 writeImageToSavedPhotosAlbum 时获取文件名【英文标题】:get file name when using writeImageToSavedPhotosAlbum 【发布时间】:2015-03-16 20:53:17 【问题描述】:

ios swift 应用程序中, 我正在使用writeImageToSavedPhotosAlbum 在 iphone 上保存 UIImage

let assets : ALAssetsLibrary = ALAssetsLibrary()
let imgRef : CGImage = myImage!.CGImage
let orientation : ALAssetOrientation = ALAssetOrientation(rawValue: myImage!.imageOrientation.rawValue)!
assets.writeImageToSavedPhotosAlbum(imgRef, orientation: orientation, completionBlock: nil)

有没有办法获得保存的图像文件名?还是自己设置?

感谢您的帮助

【问题讨论】:

你为什么在完成块中传递 nil ?使用它,然后你会得到你想要的 【参考方案1】:

如果您查看您正在使用的方法的规范,您会发现您未使用的完成块的类型为 ALAssetsLibraryWriteImageCompletionBlock,其参数为 NSURL *assetURL, NSError *error

因此,指定一个完成块,您将获得可以从中获取一些信息的资产 URL。

【讨论】:

感谢您的重播,但使用它我得到:assets-library://asset/asset.JPG?id=7DCF9B2E-F33D-4317-B522-5BA8E0517638&ext=JPG 而在 iphone 上,图像名称是“IMG_0027.JPG”,如何从该 URL 获取真实姓名? 不能,网址是你能得到的最接近的网址【参考方案2】:

您可以使用完成块参数获取文件路径信息。而不是传递 nil 传递块,如:

assets.writeImageToSavedPhotosAlbum(imgRef, orientation: orientation, completionBlock:
 (path:NSURL!, error:NSError!) -> Void in
        println("\(path)")
)

查看ALAssetLibrary Class Reference了解更多信息

【讨论】:

感谢您的重播,但使用我得到:assets-library://asset/asset.JPG?id=7DCF9B2E-F33D-4317-B522-5BA8E0517638&ext=JPG 而在 iphone 上,图像名称是“IMG_0027.JPG”我如何从该 URL 获取真实姓名? @Youssef:不幸的是,没有办法获得这些信息。可能这个7DCF9B2E-F33D-4317-B522-5BA8E0517638.JPG 将是文件名。从url中提取

以上是关于使用 writeImageToSavedPhotosAlbum 时获取文件名的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)