iOS ——高质量图片压缩

最近项目中需要上传图片,我用 7Plus 拍了些照片,每一张基本都有 6-7M 左右大小,有的甚至超过了10M,这样的图片大小,先不说宽带,就流量就能让用户骂娘啊!因此,我参考Android 的鲁班压缩库思想,写了个 iOS 版图片压缩库Luban_iOS

更新

  • 支持添加自定义 文字水印
  • 也可以添加自定义 水印图片

Demo 中用到的图片大于 8Mb ,压缩完之后不到 59Kb,添加文字水印后会有 63Kb左右

iOS ——高质量图片压缩_第1张图片
compressed.gif

压缩比如下表:

机型 照片获取途径 原图大小.before 压缩后大小.after
6s 拍照(竖屏) 5.19 Mb 86.8 Kb
6s 拍照(横屏) 5.26 Mb 29.2 Kb
7plus 拍照(竖屏) 8.05 Mb 229.1 Kb
7plus 拍照(横屏) 6.34 Mb 39.6 Kb
6s 截屏 1.05 Mb 53.56 Kb
7plus 截屏 234.7 Kb 37.5 Kb

通过 CocoaPods 安装

  • Podfile 文件里添加pod 'Luban_iOS'
    然后在终端运行 pod install

注意:如果使用 pod search Luban_iOS 搜不到,那么,你需要

 pod setup
 rm -rf ~/Library/Caches/Cocoapods

使用方法

  • 下载 Demo 试玩一下,看一下输出,点一下图片看压缩后的效果大图

  • 导入 Category 头文件:

    #import

  • 方法调用

    [UIImage lubanCompressImage:image] or
    [UIImage lubanCompressImage:image withMask:maskName] or
    [UIImage lubanCompressImage:image withCustomImage:imageName]

  • 参数说明

/*
 image:    UIImage 对象
 withMask: 文字水印名字 (NSString)
 withCustomImage: 水印图片名称
*/
  • 注意:
    注意: 想使用自定义文字水印的请使用方法:[UIImage lubanCompressImage:image withMask:maskName] 添加水印时,想使用自定义图片水印的请使用方法:[UIImage lubanCompressImage:image withCustomImage:imageName]

后续添加的功能

  • 可以自定义水印旋转角度
  • 可以根据一个本地路径,进行压缩并存储
给自己的代码库添加 CocoaPods支持

你可能感兴趣的:(iOS ——高质量图片压缩)