//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);
}
}
IOS调用相册和照相获取图片
最新推荐文章于 2020-05-31 16:09:21 发布