UIImagePickerController 是系統(tǒng)提供的用來(lái)獲取圖片和視頻的接口;
用UIImagePickerController 類來(lái)獲取圖片視頻,大體分為以下幾個(gè)步驟:
1. 初始化UIImagePickerController 類;
2. 設(shè)置UIImagePickerController 實(shí)例的數(shù)據(jù)來(lái)源類型(下面解釋);
3. 設(shè)置設(shè)置代理;
4. 如果需要做圖片修改的話設(shè)置allowsEditing =yes。
數(shù)據(jù)來(lái)源類型一共有三種:
enum {
UIImagePickerControllerSourceTypePhotoLibrary ,//來(lái)自圖庫(kù)
UIImagePickerControllerSourceTypeCamera ,//來(lái)自相機(jī)
UIImagePickerControllerSourceTypeSavedPhotosAlbum //來(lái)自相冊(cè)
};
在用這些來(lái)源的時(shí)候最好檢測(cè)以下設(shè)備是否支持;
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
NSLog(@"支持相機(jī)");
}
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
{
NSLog(@"支持圖庫(kù)");
}
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
NSLog(@"支持相片庫(kù)");
}
調(diào)用攝像頭來(lái)獲取資源
- (void)viewDidLoad {
[super viewDidLoad];
// 初始化系統(tǒng)相冊(cè)界面的VC.
picker = [[UIImagePickerController alloc]init];
// 設(shè)置VC的相關(guān)屬性.
picker.view.backgroundColor = [UIColor orangeColor];
// 選擇相片的來(lái)源類型(相機(jī),圖庫(kù),照片庫(kù)).
UIImagePickerControllerSourceType sourcheType = UIImagePickerControllerSourceTypeCamera;
picker.sourceType = sourcheType;
picker.delegate = self;
picker.allowsEditing = YES;
}
模態(tài)推出 UIImagePickerController相冊(cè)界面
[self presentViewController:picker animated:YES completion:nil];
UIImagePickerControllerDelegate 代理方法 (用來(lái)獲取選中或者取消圖片)
// chose選中某張圖片,內(nèi)含參數(shù)info,圖片的信息.(選中后調(diào)用此方法)
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary
*)info {
在這里面我們可以拿到我們想要的圖片,
然后回到原始界面dismiss該VC.
}
// 取消的時(shí)候調(diào)用此方法.
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
// 已棄用.
- (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 ;媒體的URL
NSString *const UIImagePickerControllerReferenceURL ;原件的URL
NSString *const UIImagePickerControllerMediaMetadata;當(dāng)來(lái)數(shù)據(jù)來(lái)源是照相機(jī)的時(shí)候這個(gè)值才有效
UIImagePickerController 的更多參數(shù)參考這里。
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 ;只有視頻沒(méi)有聲音
const CFStringRef kUTTypeAudio ;只有聲音沒(méi)有視頻
const CFStringRef kUTTypeQuickTimeMovie ;
const CFStringRef kUTTypeMPEG ;
const CFStringRef kUTTypeMPEG4 ;
const CFStringRef kUTTypeMP3 ;
const CFStringRef kUTTypeMPEG4Audio ;
const CFStringRef kUTTypeAppleProtectedMPEG4Audio;
另外可以再研究研究PhoneKit框架.詳解鏈接:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-two.html