iOS下关于如何调用本地相机和如何保存照片到本地相册:
本实例中,使用storyboard拖拽的控件,参考者可以自己选择方式:
使用stroyboard可以提高代码效率,用于快速出成品展示:
在.m中:
#import "ViewController.h"
@interface ViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *imagePicture;
@end
@implementation ViewController
- (IBAction)saveClick:(id)sender
{
//UIImageWriteToSavedPhotosAlbum(self.imagePicture.image, nil, nil, nil);
UIImageWriteToSavedPhotosAlbum(self.imagePicture.image, self, @selector(image:didFinshSavingWithError:contextInfo:), nil);
// UIAlertView *alertPhoto = [[UIAlertView alloc]initWithTitle:@"" message:@"已保存到相册"
// delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
// [alertPhoto show];
}
- (void)image:(UIImage *)image didFinshSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
NSString *mes = nil;
if (error == nil) {
mes = @"保存成功";
}else
{
mes = @"保存失败";
}
UIAlertView *alertPhoto = [[UIAlertView alloc]initWithTitle:@"提醒" message:mes
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertPhoto show];
}
//打开照相机的方法
- (IBAction)cameraClick:(id)sender
{
//调用相机
//diaoy xiangji
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
//判断当前设备是否有照相功能
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
//判断如果没有相机就调用图片库
sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
}
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.sourceType = sourceType;
picker.delegate = self;
[self presentViewController:picker animated:YES completion:^{
}];
}
//点击相册的选择按钮, 或者 相机照完之后的使用按钮
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//把选择的图片给imageView
self.imagePicture.image = [info valueForKey:UIImagePickerControllerOriginalImage];
[self dismissViewControllerAnimated:YES completion:^{
}];
}
//点击取消按钮的时候触发
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:^{
}];
}
//打开相册
- (IBAction)photoClick:(id)sender
{
//初始化
UIImagePickerController *picker= [[UIImagePickerController alloc]init];
//选择调用的类型
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.delegate = self;
//推出相册界面
[self presentViewController:picker animated:YES completion:^{
}];
}