swift如何压缩图片到指定大小以内,尺寸和体积双压缩
2016-11-18 16:33
971 查看
func 压缩(原图: UIImage)
-> NSData{
//prepare constants
let width = 原图.size.width
let height = 原图.size.height
let scale = width/height
var sizeChange = CGSize()
if width <= 400 { //图片宽度小于400时图片尺寸保持不变,不改变图片大小
var 压缩图数据 = UIImageJPEGRepresentation(原图, 1)
var 压缩图 = 原图
while 压缩图数据?.length > 102400 {
压缩图数据 = UIImageJPEGRepresentation(压缩图, 0.5)
压缩图 = UIImage(data: 压缩图数据!)!
}
//print(压缩图数据?.length)
return 压缩图数据!
}else{
let changedWidth:CGFloat = 400
let changedheight:CGFloat =
changedWidth / scale
sizeChange = CGSize(width: changedWidth, height: changedheight)
}
UIGraphicsBeginImageContext(sizeChange)
//draw resized image on Context
原图.drawInRect(CGRectMake(0, 0,
sizeChange.width, sizeChange.height))
//create UIImage
let resizedImg = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
var 压缩图数据 = UIImageJPEGRepresentation(resizedImg, 1)
var 压缩图 = 原图
while 压缩图数据?.length > 102400 {
压缩图数据 = UIImageJPEGRepresentation(压缩图, 0.5)
压缩图 = UIImage(data: 压缩图数据!)!
}
//print(压缩图数据?.length)
return 压缩图数据!
}
不懂的找我,具体不解释那么多了,我是整容通(hgzrt.com)产品经理,从小白开始自学撸码,在整容通app里面我的id是通通。
-> NSData{
//prepare constants
let width = 原图.size.width
let height = 原图.size.height
let scale = width/height
var sizeChange = CGSize()
if width <= 400 { //图片宽度小于400时图片尺寸保持不变,不改变图片大小
var 压缩图数据 = UIImageJPEGRepresentation(原图, 1)
var 压缩图 = 原图
while 压缩图数据?.length > 102400 {
压缩图数据 = UIImageJPEGRepresentation(压缩图, 0.5)
压缩图 = UIImage(data: 压缩图数据!)!
}
//print(压缩图数据?.length)
return 压缩图数据!
}else{
let changedWidth:CGFloat = 400
let changedheight:CGFloat =
changedWidth / scale
sizeChange = CGSize(width: changedWidth, height: changedheight)
}
UIGraphicsBeginImageContext(sizeChange)
//draw resized image on Context
原图.drawInRect(CGRectMake(0, 0,
sizeChange.width, sizeChange.height))
//create UIImage
let resizedImg = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
var 压缩图数据 = UIImageJPEGRepresentation(resizedImg, 1)
var 压缩图 = 原图
while 压缩图数据?.length > 102400 {
压缩图数据 = UIImageJPEGRepresentation(压缩图, 0.5)
压缩图 = UIImage(data: 压缩图数据!)!
}
//print(压缩图数据?.length)
return 压缩图数据!
}
不懂的找我,具体不解释那么多了,我是整容通(hgzrt.com)产品经理,从小白开始自学撸码,在整容通app里面我的id是通通。
相关文章推荐
- 图片压缩到指定尺寸和大小
- 图片按指定比例缩放并压缩至指定大小,解决保存图片文件体积过大bug。
- 图片压缩的两种形式(压缩到指定尺寸和压缩到指定大小)
- java按比例压缩图片的源代码,用java如何把图片处理到指定大小
- java按比例压缩图片的源代码,用java如何把图片处理到指定大小
- 巧用isee“压缩”限制图片的文件大小及其尺寸
- 【问题帖】压缩图片大小至指定Kb以下
- 图片压缩为指定大小
- 如何使图片尺寸自动适应窗口,随窗口大小变化而变化
- iOS 图片按比例压缩,指定大小压缩
- 图片压缩指定大小
- iOS图片压缩成指定大小
- iOS 图片大小压缩 图片尺寸处理
- Linux系统下批量压缩图片尺寸大小的方法
- 在线图片压缩后以ImageIO 流的形式 设置大小显示指定页面
- Android学习之压缩图片到指定大小
- android 将图片压缩到指定的大小的示例
- 三种Android图片压缩方法 压缩到指定大小
- iOS中图片压缩成指定的大小
- android压缩图片到指定尺寸