美文网首页
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