iOS 系统相册获取图片,保存图片,以及剪切图片

<UIImagePickerControllerDelegate,UINavigationControllerDelegate>

- (void)viewDidLoad {

    [super viewDidLoad];

    int marger=(self.view.bounds.size.width-300)/2.0;

    _imageView=[[UIImageView alloc]init];

    _imageView.frame=CGRectMake(0, 0, self.view.bounds.size.width, 300);

    _imageView.backgroundColor=[UIColor redColor];

    [self.view addSubview:_imageView];

    

    

    _button=[UIButton buttonWithType:UIButtonTypeCustom];

    _button.frame=CGRectMake(0, 400, 100, 40);

    [_button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];

    [_button setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];

    [_button setTitle:@"选取图片" forState:UIControlStateNormal];

    [self.view addSubview:_button];

    

    _button1=[UIButton buttonWithType:UIButtonTypeCustom];

    _button1.frame=CGRectMake(100+marger, 400, 100, 40);

    [_button1 addTarget:self action:@selector(button1Click) forControlEvents:UIControlEventTouchUpInside];

    [_button1 setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];

    [_button1 setTitle:@"保存图片" forState:UIControlStateNormal];

    [self.view addSubview:_button1];

    

    _button2=[UIButton buttonWithType:UIButtonTypeCustom];

    _button2.frame=CGRectMake(200+2*marger, 400, 100, 40);

    [_button2 addTarget:self action:@selector(button2Click) forControlEvents:UIControlEventTouchUpInside];

    [_button2 setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];

    [_button2 setTitle:@"剪切图片" forState:UIControlStateNormal];

    [self.view addSubview:_button2];

}


-(void)buttonClick{

    // 1.判断相册是否可以打开

    if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) return;

    // 2. 创建图片选择控制器

    UIImagePickerController *ipc = [[UIImagePickerController alloc] init];

    /**

     typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) {

     UIImagePickerControllerSourceTypePhotoLibrary, // 相册

     UIImagePickerControllerSourceTypeCamera, // 用相机拍摄获取

     UIImagePickerControllerSourceTypeSavedPhotosAlbum // 相簿

     }

     */

    // 3. 设置打开照片相册类型(显示所有相簿)

//    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    // ipc.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

    // 照相机

     ipc.sourceType = UIImagePickerControllerSourceTypeCamera;

    // 4.设置代理

    ipc.delegate = self;

    // 5.modal出这个控制器

    [self presentViewController:ipc animated:YES completion:nil];

    

    

}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info

{

    // 销毁控制器

    [picker dismissViewControllerAnimated:YES completion:nil];

    

    // 设置图片

    self.imageView.image = info[UIImagePickerControllerOriginalImage];

}


-(void)button1Click{

    UIImageWriteToSavedPhotosAlbum(self.imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);

}

- (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo

{

    NSString *msg = nil ;

    if(error != NULL){

        msg = @"保存图片失败" ;

    }else{

        msg = @"保存图片成功" ;

    }

    

    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:msg preferredStyle:UIAlertControllerStyleAlert];

    [self showViewController:alert sender:nil];

}




-(void)button2Click{

    /*

       将选中的图片按照一定的比例剪切成为新的图片

     

        CGRect rect=CGRectMake(100, 100, 100, 100);

        //把像 rect 转化为 rect(如无转化则按原图像素取部分图片)

        CGFloat scale = [UIScreen mainScreen].scale;

        CGFloat x= rect.origin.x*scale;

        CGFloat y=rect.origin.y*scale;

        CGFloat w=rect.size.width*scale;

        CGFloat h=rect.size.height*scale;

        CGRect dianRect = CGRectMake(x, y, w, h);

        

        //截取部分图片并生成新图片

        CGImageRef sourceImageRef = [self.imageView.image CGImage];

        CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, dianRect);

        self.imageView.image = [UIImage imageWithCGImage:newImageRef scale:[UIScreen mainScreen].scale orientation:UIImageOrientationUp];

    */

    

}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值