iPhone:怎么获取使用 UIImageWriteToSavedPhotosAlbum() 保存的图像的文件路径?

本教程将介绍iPhone:如何获取使用 UIImageWriteToSavedPhotosAlbum() 保存的图像的文件路径?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

iPhone:怎么获取使用 UIImageWriteToSavedPhotosAlbum() 保存的图像的文件路径? 教程 第1张

问题描述

我正在使用以下方法将合并的图像保存到 iPhone 照片库:

UIImageWriteToSavedPhotosAlbum(viewImage, self, @selector(savedPhotoImage:didFinishSavingWithError:contextInfo:), nil);

并使用以下方法获取回调:

- (void) savedPhotoImage:(UIImage*)image didFinishSavingWithError:(NSError *)error contextInfo: (void *)contextInfo { NSLog(@"%@", [error localizedDescription]);
NSLog(@"info: %@", contextInfo);}

我想得到的是图像的保存路径,所以我可以将它添加到一个数组中,该数组将用于在应用程序的其他位置调用已保存项目的列表.

当我使用选择器加载图像时,它会显示路径信息.但是,当我保存创建的图像时,我找不到将保存的图像路径拉到哪里.

我已经搜索过网络,但大多数示例都在回调中停止,并带有一条很好的消息,说明图像已成功保存.我只想知道它保存在哪里.

我知道一种方法可能是开始定义我自己的路径,但是当该方法为我这样做时,我只是希望它可以告诉我它保存到哪里.

推荐答案

我终于找到了答案.显然 UIImage 方法会去除元数据,因此使用 UIImageWriteToSavedPhotosAlbum 并不好.

不过,Apple 在 ios4 中加入了一个新框架来处理名为 ALAssetsLibrary 的照片库.

首先,您需要右键单击 Targets,然后在构建部分中,使用左下角的小 + 图标将 AlAsset 框架添加到您的项目中.

然后将 #import "AssetsLibrary/AssetsLibrary.h"; 添加到你的类的头文件中.

终于可以使用下面的代码了:

UIImage *viewImage = YOUR UIIMAGE  // --- mine was made from drawing context
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];// Request to save the image to camera roll[library writeImageToSavedPhotosAlbum:[viewImage CGImage] orientation:(ALAssetOrientation)[viewImage imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){ if (error) {  NSLog(@"error"); } else {NSLog(@"url %@", assetURL); }}];[library release];

这会得到你刚刚保存的文件的路径.

好了关于iPhone:怎么获取使用 UIImageWriteToSavedPhotosAlbum() 保存的图像的文件路径?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。