IOS 原生上传图像 体验优化实践

项目中图像上传存在体验不佳问题,如图片大上传慢、暴力压缩致质量下降影响审核。个人解决方案是判断图片是否超预设大小,在while循环中压缩判断,满足条件再上传。还介绍了判断预设大小、等比压缩算法及保存到相册查看清晰度等内容。

001 问题 在项目中会遇到上传图像体验不好例如图片大上传慢,用户等待很长时间,或者暴力压缩导致图片质量下降 影响后台审核 

002 个人解决案:判断图片是否超过预设大小,在 一个while循环中进行压缩判断直到满足预设大小才上传到服务器 代码如下:

 BOOL flag = [self testImgeData:imgData andImage:first];
    //第一次判断是否需要压缩 800kb
    while (flag) {
        //内循环:压缩图片 直到flag为false 才跳出循环
        UIImage* lastImage = [self scaleImage:first toScale:0.65];
        NSData* imgData = UIImageJPEGRepresentation(lastImage, 1);
        flag = [self testImgeData:imgData andImage:lastImage];
        first = lastImage;
    }


 判断预设大小:NSData 的length是bytes格式需要进行除以1024进行单位转换

- (BOOL)testImgeData:(NSData *)data andImage:(UIImage *)image{
    
    double dataLength = [data length] * 1.0;
    
    NSArray *typeArray = @[@"bytes",@"KB",@"MB",@"GB",@"TB",@"PB", @"EB",@"ZB",@"YB"];
        NSInteger index = 0;
        while (dataLength > 1024) {
            dataLength /= 1024.0;
            index ++;
        }
    NSString
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值