iOS上传照片:图片尺寸压缩,上传时大小压缩,QBImagePickerController多选照片出现的问题

1,图片尺寸压缩

-(UIImage *) imageCompressForWidth:(UIImage *)sourceImage targetWidth:(CGFloat)defineWidth//图片压缩,第二个参数为最终宽度

{

    CGSize imageSize = sourceImage.size;

    CGFloat width = imageSize.width;

    CGFloat height = imageSize.height;

    CGFloat targetWidth = defineWidth;

    CGFloat targetHeight = (targetWidth / width) * height;

    UIGraphicsBeginImageContext(CGSizeMake(targetWidth, targetHeight));

    [sourceImage drawInRect:CGRectMake(0,0,targetWidth,  targetHeight)];

    UIImage* newImage =UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return newImage;

}

方法举例:

            UIImage *newImage=[selfimageCompressForWidth:imagetargetWidth:image.size.width/2];


2,尺寸不变,大小压缩
举例:ASI上传图片时,

NSData *data = UIImagePNGRepresentation(image);//未压缩

NSData *data =UIImageJPEGRepresentation(image,0.5);//压缩


3,QBImagePickerController多选照片出现的问题

QBImagePickerController.m中方法

- (NSDictionary *)mediaInfoFromAsset:(ALAsset *)asset

3.1,取照片后自动调整为尺寸不超过屏幕宽高:

    [mediaInfo setObject:[UIImageimageWithCGImage:[[assetdefaultRepresentation] fullScreenImage]] forKey:@"UIImagePickerControllerOriginalImage"];

3.2,取照片后为照片原图:

        [mediaInfo setObject:[UIImageimageWithCGImage:[[assetdefaultRepresentation] fullResolutionImage]] forKey:@"UIImagePickerControllerOriginalImage"];

3.3,3.2中照片较大会出现左转90度,解决方法为:

    [mediaInfo setObject:[UIImageimageWithCGImage:[[assetdefaultRepresentation] fullResolutionImage]

                                             scale:[assetdefaultRepresentation].scale

                                       orientation:(UIImageOrientation)[assetdefaultRepresentation].orientation]forKey:@"UIImagePickerControllerOriginalImage"];


3中以上三点为并列语句。





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值