欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS UIImagePickerController从拍照、图库、相册获取图片

程序员文章站 2024-02-11 23:41:28
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;

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!