访问系统相册或调用摄像头

来源:互联网 发布:淘宝任务发布平台 编辑:程序博客网 时间:2024/05/19 17:59

头文件:#import <MobileCoreServices/MobileCoreServices.h>

协议:<UINavigationControllerDelegate, UIImagePickerControllerDelegate>

// 调用系统相册获取图片

- (IBAction)getImageFromAlbum:(id)sender {
    // 判断系统相册是否可用(比如用户不允许应用访问他的相册,就不可用)
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
        [self loadImagePickerControllerWithSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    } else  {
        NSLog(@"无法调用系统相册");
    }
}
// 拍照
- (IBAction)takePhoto:(id)sender {
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        [self loadImagePickerControllerWithSourceType:UIImagePickerControllerSourceTypeCamera];
    } else {
        NSLog(@"无法调用相机功能");
    }

}
- (void)loadImagePickerControllerWithSourceType:(UIImagePickerControllerSourceType)type {
    UIImagePickerController *controller = [[UIImagePickerController alloc] init];
    controller.sourceType = type;
    controller.delegate = self; // <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
    controller.allowsEditing = YES;
    [self presentViewController:controller animated:YES completion:nil];
}


#pragma mark - <UIImagePickerControllerDelegate>
// 选完图片时回调
/**
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {}
 */

// 选完媒体资源【(图片)(小视频)】时回调
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    // 判断选中的资源的类型
    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
    
    // kUTTypeImage 系统预置的图片资源类型
    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
        UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
        // self.view.backgroundColor = [UIColor colorWithPatternImage:image];
        
        // 将原图压缩成50*50的尺寸
        UIImage *smallImage = [[ImageTool shareTool] resizeImageToSize:CGSizeMake(300,300) sizeOfImage:image];
        self.view.backgroundColor = [UIColor colorWithPatternImage:smallImage];
    }
    
    [picker dismissViewControllerAnimated:YES completion:nil];
}

// 取消【点击cancel的时候触发】
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [picker dismissViewControllerAnimated:YES completion:nil];
}

0 0
原创粉丝点击