1、UIImagePickerController是系统提供的用来获取图片或视频的接口,使用UIImagePickerController类来获取图片的基本步骤如下:
a.初始化UIImagePickerController类
b.设置UIImagePickerController实例的数据来源
c.设置UIImagePickerController实例的代理
d.设置是否允许编辑图片,若允许则allowsEditing属性值置为YES
e.设置完UIImagePickerController实例的属性之后,在需要获取图片时要跳转到图像选取控制器当中去选取或拍摄图片
f.完成图片的选取后回调代理方法
2、 UIImagePickerController数据来源:
1.UIImagePickerControllerSourceTypePhotoLibrary:表示从照片库/集选取照片
2.UIImagePickerControllerSourceTypeCamera:表示从摄像头选取照片
3.UIImagePickerControllerSourceTypeSavedPhotosAlbum:表示仅仅从相册中选取照片。
判断设备是否支持照相机/图片库/相册功能
UIImagePickerControllerSourceTypePhotoLibrary ,//来自图库
UIImagePickerControllerSourceTypeCamera ,//来自相机
UIImagePickerControllerSourceTypeSavedPhotosAlbum //来自相册
判断设备是否支持前置摄像头/后置摄像头
UIImagePickerControllerCameraDeviceRear,
UIImagePickerControllerCameraDeviceFront
判断设备是否支持前置摄像头闪光灯/后置摄像头闪光灯
UIImagePickerControllerCameraDeviceRear,
UIImagePickerControllerCameraDeviceFront
返回前置摄像头/后置摄像头支持的拍摄类型
UIImagePickerControllerCameraDeviceRear,
UIImagePickerControllerCameraDeviceFront
返回照相机/相册/照片库所支持的媒体类型
字典中的键:
UIImagePickerControllerMediaType ;指定用户选择的媒体类型(文章最后进行扩展)
UIImagePickerControllerOriginalImage ;原始图片
UIImagePickerControllerEditedImage ;修改后的图片
UIImagePickerControllerCropRect ;裁剪尺寸
UIImagePickerControllerMediaURL ;媒体的URL
UIImagePickerControllerReferenceURL ;原件的URL
UIImagePickerControllerMediaMetadata;当来数据来源是照相机的时候这个值才有效
返回类型有照片和视频
UIImagePickerControllerCameraCaptureModePhoto,
UIImagePickerControllerCameraCaptureModeVideo
返回类型有kUTTypeMovie,kUTTypeImage,其他类型均在下
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;
1、//判断设备是ipad
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
注意:打开相册:(区分pad和iphone)
a.如果从一个导航按钮处呈现,使用:presentPopoverFromBarButtonItem:permittedArrowDirections:animated:;
b.如果要从一个视图出呈现,使用:presentPopoverFromRect:inView:permittedArrowDirections:animated:
c.如果设备旋转以后,位置定位错误需要在父视图控制器的下面方法里面重新定位:didRotateFromInterfaceOrientation:(在这个方法体里面重新设置rect)
然后再次调用:
- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated
2、imagePickerController.allowsEditing = NO;//不显示图片剪裁框;
如果不显示图片,在获取图片的方法里获取设置成如下:
image = [info objectForKey:UIImagePickerControllerOriginalImage];