IOS UIImagePickerController从拍照、图库、相册获取图片
程序员文章站
2023-12-20 15:58:16
ios uiimagepickercontroller从拍照、图库、相册获取图片
ios 获取图片有三种方法:
1. 直接调用摄像头拍照
2. 从相册中选择
3....
ios uiimagepickercontroller从拍照、图库、相册获取图片
ios 获取图片有三种方法:
1. 直接调用摄像头拍照
2. 从相册中选择
3. 从图库中选择
uiimagepickercontroller 是系统提供的用来获取图片和视频的接口;
用uiimagepickercontroller 类来获取图片视频,大体分为以下几个步骤:
1. 初始化uiimagepickercontroller 类;
2. 设置uiimagepickercontroller 实例的数据来源类型(下面解释);
3. 设置设置代理;
4. 如果需要做图片修改的话设置allowsediting =yes。
数据来源类型一共有三种:
enum { uiimagepickercontrollersourcetypephotolibrary ,//来自图库 uiimagepickercontrollersourcetypecamera ,//来自相机 uiimagepickercontrollersourcetypesavedphotosalbum //来自相册 };
在用这些来源的时候最好检测以下设备是否支持;
if([uiimagepickercontroller issourcetypeavailable:uiimagepickercontrollersourcetypecamera]) { nslog(@"支持相机"); } if([uiimagepickercontroller issourcetypeavailable:uiimagepickercontrollersourcetypephotolibrary]) { nslog(@"支持图库"); } if ([uiimagepickercontroller issourcetypeavailable:uiimagepickercontrollersourcetypesavedphotosalbum]) { nslog(@"支持相片库"); }
调用摄像头来获取资源
- (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; }
上面只是实例了uiimagepickercontroller及其属性 在需要获取图片的时候需要弹出窗口调用
[self presentviewcontroller:picker animated:yes completion:nil];
我们还需要代理来获取我们选中的图片
uiimagepickercontrollerdelegate
代理中一共三个方法 其中一个3.0 已经废弃了,只剩下两个我们需要用的
- (void)imagepickercontroller:(uiimagepickercontroller *)picker didfinishpickingmediawithinfo:(nsdictionary *)info;
当用户选取完成后调用;
- (void)imagepickercontrollerdidcancel:(uiimagepickercontroller *)picker;
当用户取消选取时调用;
- (void)imagepickercontroller:(uiimagepickercontroller *)picker didfinishpickingmediawithinfo:(nsdictionary *)info;
选取的信息都在info中,info 是一个字典。
字典中的键:
nsstring *const uiimagepickercontrollermediatype ;指定用户选择的媒体类型(文章最后进行扩展) nsstring *const uiimagepickercontrolleroriginalimage ;原始图片 nsstring *const uiimagepickercontrollereditedimage ;修改后的图片 nsstring *const uiimagepickercontrollercroprect ;裁剪尺寸 nsstring *const uiimagepickercontrollermediaurl ;媒体的url nsstring *const uiimagepickercontrollerreferenceurl ;原件的url nsstring *const uiimagepickercontrollermediametadata;当来数据来源是照相机的时候这个值才有效
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;
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!