IOS UIImagePickerController從拍照、圖庫、相冊獲取圖片
iOS 獲取圖片有三種方法:
1. 直接調(diào)用攝像頭拍照
2. 從相冊中選擇
3. 從圖庫中選擇
UIImagePickerController 是系統(tǒng)提供的用來獲取圖片和視頻的接口;
用UIImagePickerController 類來獲取圖片視頻,大體分為以下幾個(gè)步驟:
1. 初始化UIImagePickerController 類;
2. 設(shè)置UIImagePickerController 實(shí)例的數(shù)據(jù)來源類型(下面解釋);
3. 設(shè)置設(shè)置代理;
4. 如果需要做圖片修改的話設(shè)置allowsEditing =yes。
數(shù)據(jù)來源類型一共有三種:
enum { UIImagePickerControllerSourceTypePhotoLibrary ,//來自圖庫 UIImagePickerControllerSourceTypeCamera ,//來自相機(jī) UIImagePickerControllerSourceTypeSavedPhotosAlbum //來自相冊};
在用這些來源的時(shí)候最好檢測以下設(shè)備是否支持;
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { NSLog(@"支持相機(jī)"); } if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { NSLog(@"支持圖庫"); } if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) { NSLog(@"支持相片庫"); }
調(diào)用攝像頭來獲取資源
- (void)viewDidLoad { [super viewDidLoad]; picker = [[UIImagePickerController alloc]init]; picker.view.backgroundColor = [UIColor orangeColor]; UIImagePickerControllerSourceType sourcheType = UIImagePickerControllerSourceTypeCamera; picker.sourceType = sourcheType; picker.delegate = self; picker.allowsEditing = YES;}
上面只是實(shí)例了UIImagePickerController及其屬性 在需要獲取圖片的時(shí)候需要彈出窗口調(diào)用
[self presentViewController:picker animated:YES completion:nil];
我們還需要代理來獲取我們選中的圖片
UIImagePickerControllerDelegate
代理中一共三個(gè)方法 其中一個(gè)3.0 已經(jīng)廢棄了,只剩下兩個(gè)我們需要用的
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
當(dāng)用戶選取完成后調(diào)用;
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
當(dāng)用戶取消選取時(shí)調(diào)用;
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
選取的信息都在info中,info 是一個(gè)字典。
字典中的鍵:
NSString *const UIImagePickerControllerMediaType ;指定用戶選擇的媒體類型(文章最后進(jìn)行擴(kuò)展)NSString *const UIImagePickerControllerOriginalImage ;原始圖片NSString *const UIImagePickerControllerEditedImage ;修改后的圖片NSString *const UIImagePickerControllerCropRect ;裁剪尺寸NSString *const UIImagePickerControllerMediaURL ;媒體的URLNSString *const UIImagePickerControllerReferenceURL ;原件的URLNSString *const UIImagePickerControllerMediaMetadata;當(dāng)來數(shù)據(jù)來源是照相機(jī)的時(shí)候這個(gè)值才有效
UIImagePickerControllerMediaType 包含著KUTTypeImage 和KUTTypeMovie
KUTTypeImage 包含:
const CFStringRef kUTTypeImage ;抽象的圖片類型const CFStringRef kUTTypeJPEG ;const CFStringRef kUTTypeJPEG2000 ;const CFStringRef kUTTypeTIFF ;const CFStringRef kUTTypePICT ;const CFStringRef kUTTypeGIF ;const CFStringRef kUTTypePNG ;const CFStringRef kUTTypeQuickTimeImage ;const CFStringRef kUTTypeAppleICNS const CFStringRef kUTTypeBMP;const CFStringRef kUTTypeICO;
KUTTypeMovie 包含:
const CFStringRef kUTTypeAudiovisualContent ;抽象的聲音視頻const CFStringRef kUTTypeMovie ;抽象的媒體格式(聲音和視頻)const CFStringRef kUTTypeVideo ;只有視頻沒有聲音const CFStringRef kUTTypeAudio ;只有聲音沒有視頻const CFStringRef kUTTypeQuickTimeMovie ;const CFStringRef kUTTypeMPEG ;const CFStringRef kUTTypeMPEG4 ;const CFStringRef kUTTypeMP3 ;const CFStringRef kUTTypeMPEG4Audio ;const CFStringRef kUTTypeAppleProtectedMPEG4Audio;
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選