UIImagePicker用法

在按钮的响应事件里添加:

// 1)初始化UIImagePicker

UIImagePickerController *imagePicker = [[UIImagePickerControlleralloc]init];

 

// 2)设置UIImagePicker的数据源,数据源可以是

// a.照片库 - UIImagePickerControllerSourceTypePhotoLibrary

// b. 保存的图像 - UIImagePickerControllerSourceTypeSavedPhotosAlbum

// c. 照相机 - UIImagePickerControllerSourceTypeCamera

   [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];

 

// 3)设置是否允许编辑照片

   [imagePicker setAllowsEditing:YES];

 

// 4)设置代理,代理需要实现两个protocols, 

//       <UINavigationControllerDelegate, UIImagePickerControllerDelegate>

   [imagePicker setDelegate:self];

 

// 5)当前视图控制器展示imagepicker视图

 

   [selfpresentViewController:imagePicker animated:YEScompletion:nil];

 

实现代理方法

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

// info中包含有选择的图片的多种信息,其中也包含有所选的图片,查看UIImagePickerController关于更多info中key的更多具体信息

   UIImage *image = info[@"UIImagePickerControllerEditedImage"];

   [self.buttonsetImage:image forState:UIControlStateNormal];

   

   [selfdismissViewControllerAnimated:YEScompletion:^{

// 通过image picker选择的照片只是保存在内存中,如果要持久保存,需要把所选照片存储起来,然后在viewDidLoad中读取并做响应设置。

      NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

      NSString *path = [documents[0] stringByAppendingPathComponent:IMAGE_FILE_NAME];

      NSLog(@"%@", path);

      

// UIImage无法直接存储,需要通过NSData做中转,可以通过以下方法把UIImage转化成NSData。

      NSData *imageData = UIImagePNGRepresentation(image);

 

// 将image的NSData写入到硬盘里      

      [imageData writeToFile:path atomically:NO];

   }];

 

}

 

最后在ViewDidLoad中读取照片并做相关处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值