注释:注意红色的地方*********
将UIImagePickerController的allowEditing属性设置为YES后,选着的照片(摄影的),都可以对图片进行扩大、缩小等操作。编辑后的照片也在
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
方法中以UIImagePickerControllerEditedImage为键值从Info中取得并返回UIImage实例。
首先创建一个UIImageView。代码如下:
@interface ViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
{
UIImageView*MyImageView;
}
@end
下面是获取图片的代码
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
//获取照片
UIImage*image=[info objectForKey:UIImagePickerControllerEditedImage
];
if (!image) {
image=[info objectForKey:UIImagePickerControllerOriginalImage];
}
MyImageView.image=image;
///[self dismissModalViewControllerAnimated:YES];不推荐使用,但也可以使用
[self dismissViewControllerAnimated:YES completion:nil];
}
注意:allowEditing属性是从ios3.1开始使用。以前使用allowsImageEditing属性不推荐使用。
摄像头的使用来获取图片并把图片保存相册
序言:
当UIImagePickerController的sourceType属性指定为UIImagePickerControllerSourceTypeCamera时,就可以开启摄像头进行摄像。
正文:
拍摄照片的获取方法和从相册中选着照片是一样的 。下面我们只要讲述如何将拍摄的照片保存到手机相册。
代码如下:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
//获取照片
UIImage*image=[info objectForKey:UIImagePickerControllerEditedImage
];
if (!image) {
image=[info objectForKey:UIImagePickerControllerOriginalImage];
}
MyImageView.image=image;
//将拍摄的照片保存相册
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
//image:didFinishSavingWithError:contextInfo:其中触发方法不好书写,可以慢慢的书写
///[self dismissModalViewControllerAnimated:YES];不推荐使用,但也可以使用
[self dismissViewControllerAnimated:YES completion:nil];
}
下面是方法(image:didFinishSavingWithError:contextInfo:)的触发事件:代码如下:
-(void)image:(UIImage*)image didFinishSavingWithError:(NSError*)error contextInfo:(void*)contextInfo
{
if (error) {
//error非nil保存失败
NSLog([error localizedDescription]);
}else
{
//保存成功
}
}
注意:
方法 UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil)的解释
UIImageWriteToSavedPhotosAlbum((参数1)image, (参数2)self, (参数3)@selector(image:didFinishSavingWithError:contextInfo:), (参数4)nil);
各个参数 | 作用 |
参数1 | 是传入的UIImage实例(此处为 image) |
参数2 | 是为接收保存失败(成功)时得通知对象响应类(此处为self) |
参数3 | 为接收通知时的调用响应方法(此处为 image:didFinishSavingWithError:contextInfo: ) |
参数4 | 为相应方法(参数3)传来的参数指针(此处为 nil) |