最近项目中需要上传图片,我用 7Plus 拍了些照片,每一张基本都有 6-7M 左右大小,有的甚至超过了10M,这样的图片大小,先不说宽带,就流量就能让用户骂娘啊!因此,我参考Android 的鲁班压缩库思想,写了个 iOS 版图片压缩库Luban_iOS
更新
- 支持添加自定义 文字水印
- 也可以添加自定义 水印图片
Demo 中用到的图片大于 8Mb ,压缩完之后不到 59Kb,添加文字水印后会有 63Kb左右
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 <Luban_iOS/UIImage+Luban_iOS_Extension_h.h>
-
方法调用
[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]
后续添加的功能
- 可以自定义水印旋转角度
- 可以根据一个本地路径,进行压缩并存储
网友评论