iPhone:如何获取使用 UIImageWriteToSavedPhotosAlbum() 保存的图像的文件路径? [英] iPhone: How do I get the file path of an image saved with UIImageWriteToSavedPhotosAlbum()?

查看:73
本文介绍了iPhone:如何获取使用 UIImageWriteToSavedPhotosAlbum() 保存的图像的文件路径?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm saving a merged image to the iPhone photo library using:

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

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

And getting the callback using:

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

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

What I would like to get is the path for where the image has been saved, so I can add it to an array which will be used to call up a list of saved items elsewhere in the app.

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

When I load the image using the picker it displays the path info. However when I save a created image, I can't find where to pull the saved image path.

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

I have search about the web, but most examples stop at the callback with a nice message to say the image was saved successfully. I would just like to be able to know where it was saved.

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

I understand one method might be to start defining my own paths, but as the method does that for me, I was just hoping it could tell me where it saved to.

推荐答案

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

I finally found out the answer. Apparently the UIImage methods strip out metadata and so using UIImageWriteToSavedPhotosAlbum is no good.

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

However in ios4 Apple put in a new framework to handle the photo library called the ALAssetsLibrary.

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

First you need to right click on the Targets and in the build part, add the AlAsset Framework to your project with the little + icon in the bottom left.

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

Then add #import "AssetsLibrary/AssetsLibrary.h"; to the header file of your class.

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

Finally you can use the following code:

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];

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

And that gets the path of the file you just saved.

这篇关于iPhone:如何获取使用 UIImageWriteToSavedPhotosAlbum() 保存的图像的文件路径?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆