博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS 保存图片至相册
阅读量:4110 次
发布时间:2019-05-25

本文共 1486 字,大约阅读时间需要 4 分钟。

应用中有时我们会有保存图片的需求,如利用UIImagePickerController用IOS设备内置的相机拍照,或是有时我们在应用程序中利用UIKit的 UIGraphicsBeginImageContext,UIGraphicsEndImageContext,UIGraphicsGetImageFromCurrentImageContext方法创建一张图像需要进行保存。 IOS的UIKit Framework提供了UIImageWriteToSavedPhotosAlbum方法对图像进行保存,该方法会将image保存至用户的相册中,描述如下: 

1 void UIImageWriteToSavedPhotosAlbum (
2    UIImage  *image,
3    id       completionTarget,
4    SEL      completionSelector,
5    void     *contextInfo
6 );
参数说明: 

        image 

            带保存的图片UImage对象 


        completionTarget 

            图像保存至相册后调用completionTarget指定的selector(可选) 


        completionSelector 

                completionTarget的方法对应的选择器,相当于回调方法,需满足以下格式 
1 - (void) image: (UIImage *) image
2 didFinishSavingWithError: (NSError *) error
3              contextInfo: (void *) contextInfo;
         contextInfo指定了在回调中可选择传入的数据。 


当我们需要异步获得图像保存结果的消息时,我们需要指定completionTarget对象以及其completionSelector对应的选择器。示例如下:  


01 - (void)saveImageToPhotos:(UIImage*)savedImage
02 {
03     UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); 
04 }
05 // 指定回调方法
06 - (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo
07 {  
08     NSString *msg = nil ;  
09     if(error != NULL){
10         msg = @"保存图片失败" ;
11     }else{
12         msg = @"保存图片成功" ;
13     }
14     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"保存图片结果提示"
15                                                         message:msg
16                                                        delegate:self
17                                               cancelButtonTitle:@"确定"
18                                               otherButtonTitles:nil];
19     [alert show];
20 }
21  
22 // 调用示例
23 UIImage *savedImage = [UIImage imageNamed:"savedImage.png"];
24  
25 [self saveImageToPhotos:savedImage];

转载地址:http://tcosi.baihongyu.com/

你可能感兴趣的文章
C语言内存检测
查看>>
Linux epoll模型
查看>>
Linux系统编程——线程池
查看>>
Linux C++线程池实例
查看>>
c++11 你需要知道这些就够了
查看>>
c++11 你需要知道这些就够了
查看>>
shared_ptr的一些尴尬
查看>>
C++总结8——shared_ptr和weak_ptr智能指针
查看>>
c++写时拷贝1
查看>>
Linux网络编程---I/O复用模型之poll
查看>>
Java NIO详解
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
VS编译器运行后闪退,处理方法
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
idea 有时提示找不到类或者符号
查看>>
matplotlib.pyplot.plot()参数详解
查看>>
拉格朗日对偶问题详解
查看>>
MFC矩阵运算
查看>>
最小二乘法拟合:原理,python源码,C++源码
查看>>
ubuntu 安装mysql
查看>>