UIImagePickerController的知识点总结

1UIImagePickerController是系统提供的用来获取图片或视频的接口,使用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];

 

 

 

原文地址:https://www.cnblogs.com/yuhao309/p/5716026.html