压缩图片

///图片压缩方法
func resetImgSize(sourceImage:UIImage, maxImageLength:CGFloat, maxSizeKB:CGFloat) -> UIImage {
    var maxSize = maxSizeKB
    var maxImageSize = maxImageLength
    if (maxSize <= 0.0) {
        maxSize = 1024.0
    }
    if (maxImageSize <= 0.0) {
        maxImageSize = 1024.0
    }
    //先调整分辨率
    var newSize = CGSize.init(width: sourceImage.size.width, height: sourceImage.size.height)
    let tempHeight = newSize.height/maxImageSize
    let tempWidth = newSize.width/maxImageSize;
    if (tempWidth > 1.0 && tempWidth > tempHeight) {
        newSize = CGSize.init(width: sourceImage.size.width / tempWidth, height: sourceImage.size.height / tempWidth)
    } else if (tempHeight > 1.0 && tempWidth < tempHeight){
        newSize = CGSize.init(width: sourceImage.size.width / tempHeight, height: sourceImage.size.height / tempHeight)
    }
    UIGraphicsBeginImageContext(newSize)
    sourceImage.draw(in: CGRect.init(x: 0, y: 0, width: newSize.width, height: newSize.height))
    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    var imageData = UIImageJPEGRepresentation(newImage!, 1.0)
    var sizeOriginKB : CGFloat = CGFloat((imageData?.count)!) / 1024.0
    //调整大小
    var resizeRate = 0.9
    while (sizeOriginKB > maxSize && resizeRate > 0.1) {
        imageData = UIImageJPEGRepresentation(newImage!,CGFloat(resizeRate))
        sizeOriginKB = CGFloat((imageData?.count)!) / 1024.0
        resizeRate -= 0.1
    }
    return UIImage.init(data: imageData!)!
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Contributed by Tian & Alex 开头段|IP l In response to the is...
    北城说书人阅读 2,600评论 0 1
  • 儿时的旧友,三三俩俩不知怎么就散了,记得当初每次一有时间,都会打开qq去说:在吗?然后是无分彼此的寒暄,你在...
    千禾火雨山阅读 1,063评论 0 0
  • 1.简介:monkey是Android sdk附带的一个工具,可以运行在模拟器和真机上,它向系统发送伪随机的用户事...
    软件测试笔记阅读 3,077评论 0 2
  • 这段时间孩子们正紧张地进行期末复习。 姐姐说:老师说了要有点紧张感,认真对待;弟弟说:他不觉得紧张,我...
    仕英阅读 1,832评论 0 1

友情链接更多精彩内容