ios中摄像头/相册获取图片,压缩图片

从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用。在这里,我们需要过UIImagePickerController类来和用户交互。

    使用UIImagePickerController和用户交互,我们需要实现2个协议<UIImagePickerControllerDelegate,UINavigationControllerDelegate>。

View Code

 代码如下复制代码
#pragma mark 从用户相册获取活动图片
- (void)pickImageFromAlbum
{
    imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    imagePicker.allowsEditing = YES;
   
    [self presentModalViewController:imagePicker animated:YES];
}

   我们来看看上面的从相册获取图片,我们首先要实例化UIImagePickerController对象,然后设置imagePicker对象为当前对象,设置imagePicker的图片来源为UIImagePickerControllerSourceTypePhotoLibrary,表明当前图片的来源为相册,除此之外还可以设置用户对图片是否可编辑。


View Code

 代码如下复制代码
#pragma mark 从摄像头获取活动图片
- (void)pickImageFromCamera
{
    imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    imagePicker.allowsEditing = YES;
   
    [self presentModalViewController:imagePicker animated:YES];
}

   以上是从摄像头获取图片,和从相册获取图片只是图片来源的设置不一样,摄像头图片的来源为UIImagePickerControllerSourceTypeCamera。

    在和用户交互之后,用户选择好图片后,会回调选择结束的方法。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [picker dismissViewControllerAnimated:YES completion:nil];
    if (picker.sourceType == UIImagePickerControllerSourceTypeCamera)
    {
        UIImage *image = info[UIImagePickerControllerOriginalImage];
        //获取并压缩图片
         NSData *imageData = UIImageJPEGRepresentation(image, 1);
        [self.imageArray addObject:[imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]];//ios 7 出来的原生base64  方法
        [self.imageArray1 addObject:[UIImage imageWithData:imageData]];
        ViewController *listVc = [[ViewController alloc]initWithNibName:@"aaa"
                                                                                         bundle:nil];
        [self.navigationController pushViewController:listVc
                                             animated:YES];
    }

}else{

        NSURL *imageURL = info[UIImagePickerControllerReferenceURL];
        ALAssetsLibraryAssetForURLResultBlock resultrBlock = ^(ALAsset *asset){
            ALAssetRepresentation *representation = [asset defaultRepresentation];
            NSString *fileName = [representation filename];//获取图片的名字
            UIImage *image = [UIImage imageWithCGImage:[representation fullResolutionImage]];//获取所有图片
            // 获取并压缩图片
            NSData *imgData = UIImageJPEGRepresentation(image, 1);
            [self.imageArray addObject:[imgData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]];

            [self.imageCells addObject:[UIImage imageWithData:imgData]];
//            [weakSelf layoutImageItems];
        };
        
        ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init];
        [assetslibrary assetForURL:imageURL
                       resultBlock:resultrBlock
                      failureBlock:nil];
    }



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值