iOS从相机或相册获取图片并裁剪,再获取裁剪后的图片

-(void) selectWayToGetPicture{
  UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"图库", nil];
  [actionSheet showInView:self.view];
}

// 实现UIActionSheetDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate

#pragma mark -actionSheetDelegate
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
  if (buttonIndex == 0) {
    // 资源类型为照相机
    UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
    // 判断是否有相机
    if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]){
      UIImagePickerController *picker = [[UIImagePickerController alloc] init];
      picker.delegate = self;
      picker.sourceType = sourceType; // 资源类型为照相机
      picker.allowsEditing = YES;     // 设置选择后的图片是否能被编辑
      [self presentViewController:picker animated:YES completion:nil];
    }else {
      UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil message:@"该设备无摄像头"delegate:self cancelButtonTitle:@"取消"otherButtonTitles: nil];
      [alertView show];
    }
  }else if(buttonIndex == 1){
    UIImagePickerController *pickerController = [[UIImagePickerController alloc] init];
    pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    pickerController.delegate = self;
    pickerController.allowsEditing = YES; // 设置选择后的图片是否能被编辑
    [self presentViewController:pickerController animated:YES completion:nil];
  }
}

-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
  NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
  // 当选择的类型是图片
  if ([type isEqualToString:@"public.image"])
  {
    UIImage* image = [info objectForKey:@"UIImagePickerControllerEditedImage"]; // 裁剪后的图片
  }
  [picker dismissViewControllerAnimated:YES completion:nil];
}

你可能感兴趣的:(iOS开发笔记)