美文网首页iOS高级开发
iOS 图片压缩上传

iOS 图片压缩上传

作者: 下弦月丿 | 来源:发表于2016-11-18 11:08 被阅读281次

前段时间处理了下图片上传压缩的问题,在这里记录下。iPhone拍摄的照片2-3M可压缩至30-60KB左右,清晰度还可以接受,如果一次处理多张高清图,放入子线程中进行压缩

/**
 *  图片上传压缩
 *  @param source_image    原图片
 *  @param compressQuality 压缩系数 0-1
 *  默认参考大小30kb,一般用该方法可达到要求,压缩系数可根据压缩后的清晰度权衡,项目里我用的0.2😆
 */
+ (NSData *)resetSizeOfImageData:(UIImage *)source_image compressQuality:(CGFloat)compressQuality
{
    return  [self resetSizeOfImageData:source_image referenceSize:30 compressQuality:compressQuality];
}
/**
 *  图片上传压缩
 *  @param source_image    原图片
 *  @param referenceSize   上传的参考大小**KB
 *  @param compressQuality 压缩系数 0-1
 *  @return                imageData
 */
+ (NSData *)resetSizeOfImageData:(UIImage *)source_image referenceSize:(NSInteger)maxSize compressQuality:(CGFloat)compressQuality
{
    //先调整分辨率
    CGSize newSize = CGSizeMake(source_image.size.width, source_image.size.height);
    NSInteger tempHeight = newSize.height / 1024;
    NSInteger tempWidth = newSize.width / 1024;
    
    if (tempWidth > 1.0 && tempWidth > tempHeight) {
        newSize = CGSizeMake(source_image.size.width / tempWidth, source_image.size.height / tempWidth);
    }
    else if (tempHeight > 1.0 && tempWidth < tempHeight){
        newSize = CGSizeMake(source_image.size.width / tempHeight, source_image.size.height / tempHeight);
    }
    UIGraphicsBeginImageContext(newSize);
    [source_image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    //调整大小
    NSData *imageData = UIImageJPEGRepresentation(newImage,1.0);
    NSUInteger sizeOrigin = [imageData length];
    NSUInteger sizeOriginKB = sizeOrigin / 1024;
    if (sizeOriginKB > maxSize) {
        NSData *finallImageData = UIImageJPEGRepresentation(newImage,compressQuality);
        return finallImageData;
    }
    return imageData;
}

相关文章

  • Vue上传图片压缩的问题

    上传图片太大,需要前台进行图片压缩上传图片大于100* 1024 的用canvas 来压缩来解决然后IOS拍照上传...

  • vue 图片压缩

    vue 图片压缩 上传图片大于100* 1024 的用canvas 来压缩来解决 然后IOS拍照上传会有图片旋转的...

  • vue 图片压缩

    vue 图片压缩 上传图片大于100* 1024 的用canvas来压缩来解决 然后IOS拍照上传会有图片旋转的问...

  • 2015-10-16图片压缩,MD5校验去重

    ios客户端上传图片的时候,如果图片过大,通常会压缩后上传, UIImageJPEGRepresentation(...

  • 阿里云(I)

    参考资料:iOS 阿里云服务器图片上传iOS录制(或选择)视频,压缩、上传(整理)视频 拍摄 与压缩 阿里云OSS...

  • iOS 图片压缩上传

    前段时间处理了下图片上传压缩的问题,在这里记录下。iPhone拍摄的照片2-3M可压缩至30-60KB左右,清晰度...

  • iOS图片压缩上传

    需求 很多时候我们上传图片经常遇到一些问题,要不就是图片质量变差,要不就是图片太大等等问题。这里,我找到了一个算是...

  • iOS 网络上传图片

    上传图片 构造参数(NSArray *)files 上传图片—压缩 压缩到小于(...

  • iPic for Mac(图床神器) v1.7.0中文免费版

    上传图片相关设置 上传前压缩图片 可以在 iPic 的 偏好设置 中开启「上传前压缩图片」选项,目前支持压缩的图片...

  • [iOS] iOS 中使用 UIImage 的注意点

    iOS 处理图片的一些小 Tip App图片压缩裁剪原理和上传方案,以及那些有趣的事儿...

网友评论

    本文标题:iOS 图片压缩上传

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