swift 图片压缩
来源:互联网 发布:平原烈火读后感知乎 编辑:程序博客网 时间:2024/06/05 11:26
微信分享、微博分享等等,对图片大小有要求,所以需要压缩,把该方法放到Extension+UIImage即可!
// 图片压缩 func compressImage(maxLength: Int) -> UIImage { let tempMaxLength: Int = maxLength / 8 var compression: CGFloat = 1 guard var data = UIImageJPEGRepresentation(self, compression) where data.length > tempMaxLength else { return self } // Compress by size var max: CGFloat = 1 var min: CGFloat = 0 for _ in 0..<6 { compression = (max + min) / 2 data = UIImageJPEGRepresentation(self, compression)! if CGFloat(data.length) < CGFloat(tempMaxLength) * 0.9 { min = compression } else if data.length > tempMaxLength { max = compression } else { break } } var resultImage: UIImage = UIImage(data: data)! if data.length < tempMaxLength { return resultImage } // Compress by size var lastDataLength: Int = 0 while data.length > tempMaxLength && data.length != lastDataLength { lastDataLength = data.length let ratio: CGFloat = CGFloat(tempMaxLength) / CGFloat(data.length) print("Ratio =", ratio) let size: CGSize = CGSize(width: Int(resultImage.size.width * sqrt(ratio)), height: Int(resultImage.size.height * sqrt(ratio))) UIGraphicsBeginImageContext(size) resultImage.drawInRect(CGRect(x: 0, y: 0, width: size.width, height: size.height)) resultImage = UIGraphicsGetImageFromCurrentImageContext()! UIGraphicsEndImageContext() data = UIImageJPEGRepresentation(resultImage, compression)! } return resultImage }
如果转载请注明转于:AirZilong的博客
1 0
- swift 图片压缩
- swift压缩图片的方法
- 关于图片压缩的代码实现Swift
- swift如何压缩图片到指定大小以内,尺寸和体积双压缩
- 图片压缩。大小压缩
- 图片压缩按比例压缩
- 压缩图片
- 压缩图片
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 压缩图片
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- ios跳转wifi设置页面
- springMVC注解@initbinder
- 在redhat6.4系统上安装yum,下载安装rpm包
- 支付宝支付-即时到帐
- linux的Ext2文件系统
- swift 图片压缩
- High disk watermark in elastcisearch
- C语言的数据类型
- Redis系列-远程连接redis并给redis加锁
- Spring、Spring MVC、MyBatis整合文件配置详解
- 解决jmeter 请求参数中文乱码
- PDF.js使用笔记
- 四种常见的 POST 提交数据方式
- Velocity模板引擎的简单使用