使用 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有三种方式(不使用,动态使用,静态使用,默认是动态使用)