美文网首页
iOS上传图片时将图片压缩到指定大小

iOS上传图片时将图片压缩到指定大小

作者: Sh1mmer | 来源:发表于2019-07-15 15:57 被阅读0次

    更多的图片拓展方法原文地址

    /**
     压缩图片到指定大小(byte)
    
     @param image 原始图片
     @param maxLength 最大长度
     @return 压缩后图片
     */
    - (NSData *)compressImageQuality:(UIImage *)image toByte:(NSInteger)maxLength {
        CGFloat compression = 1;
        NSData *data = UIImageJPEGRepresentation(image, compression);
        if (data.length < maxLength){
            
            return data;
        }
        CGFloat max = 1;
        CGFloat min = 0;
       //个人感觉6次已经足够了
        for (int i = 0; i < 6; ++i) {
            compression = (max + min) / 2;
            data = UIImageJPEGRepresentation(image, compression);
            //这里是为了防止压缩后过小我们让图片在0.9-1.0之间
            if (data.length < maxLength * 0.9) {
                min = compression;
            } else if (data.length > maxLength) {
                max = compression;
            } else {
                break;
            }
        }
        return data;
    }
    

    相关文章

      网友评论

          本文标题:iOS上传图片时将图片压缩到指定大小

          本文链接:https://www.haomeiwen.com/subject/jgmnkctx.html