您的位置:首页 > 移动开发 > IOS开发

IOS调用相册和照相获取图片

2016-01-11 22:46 344 查看
//action sheet 的代理函数,处理头像选择(照片或者照相)
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
switch (buttonIndex) {
case INDEX_CAMERA:
[self takePicFromCamera];
break;
case INDEX_PHOTO:
[self takePicFromPhoto];
break;
default:
break;
}
}

//从相册获取头像
- (void)takePicFromPhoto{
UIImagePickerController *pickerCon = [[UIImagePickerController alloc]init];
pickerCon.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
pickerCon.delegate = self;
pickerCon.allowsEditing = true;
[self presentModalViewController:pickerCon animated:YES];
}

//从相机获取头像
- (void)takePicFromCamera{
UIImagePickerControllerSourceType type = UIImagePickerControllerSourceTypeCamera;

if ([UIImagePickerController isSourceTypeAvailable:type]) {
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.sourceType = type;
picker.allowsEditing = true;
picker.delegate = self;
[self presentModalViewController:picker animated:YES];
}else{
NSLog(@"相机无法打开");
}

}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
NSString *type = [info objectForKey:UIImagePickerControllerMediaType];

if ([type isEqualToString:@"public.image"]) {
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
NSData *data;
if (UIImagePNGRepresentation(image) == nil) {
data = UIImageJPEGRepresentation(image, 1.0);
}else{
data = UIImagePNGRepresentation(image);
}

//把选择的图片保存在沙盒中
NSString *documentPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSFileManager *manager = [NSFileManager defaultManager];
NSString *filePath = [documentPath stringByAppendingPathComponent:@"header_image.png"];

[manager createDirectoryAtPath:documentPath withIntermediateDirectories:YES attributes:nil error:nil];
[manager createFileAtPath:filePath contents:data attributes:nil];

[picker dismissModalViewControllerAnimated:YES];
_imageViewHeader.image = image;

NSLog(@"photourl-->%@",filePath);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: