美文网首页
swift 图片压缩

swift 图片压缩

作者: AirZilong | 来源:发表于2017-05-03 09:52 被阅读422次

微信分享、微博分享等等,对图片大小有要求,所以需要压缩,把该方法放到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 }
        
        // 压缩大小
        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 }
        
        // 压缩大小
        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
    }

相关文章

  • 2018-06-27

    Swift 图片转换 压缩 PNG图片转UIImage let image = UIImage(named :"...

  • swift 图片压缩

    微信分享、微博分享等等,对图片大小有要求,所以需要压缩,把该方法放到Extension+UIImage即可

  • swift图片压缩

    刚刚接触swift,对于图片压缩还是借鉴了一下,别的前辈的经验,这一段基本借鉴了,没有进行整理,主要是对图片的尺寸...

  • swift图片压缩

    二话不说,上代码 具体用法

  • 网址

    苹果官方swift社区 git教程 sketch中文网 Tiny:图片压缩

  • Swift图片压缩处理

    由于项目中有大量的上传图片,之前图片的处理方式直接就用了UIImageJPEGRepresentation方式来处...

  • Swift-图片压缩

    一、 这种方式压缩后的图片,转 Data 的话会发现data的体积比之前的还大 二、 当图片文件需要使用 Data...

  • libminipng,压缩png的swift-framework

    libminipng 通过lodepng解析png图片,使用pngquant算法进行压缩的swift-framew...

  • iOS从相册获取并压缩图片

    从相册获取图片 压缩图片(swift)通常在获取带相册的图片之后,都会发出去.但是,存在本地的图片可能比较大.因此...

  • 图片压缩组件

    图片压缩 图片压缩

网友评论

      本文标题:swift 图片压缩

      本文链接:https://www.haomeiwen.com/subject/balktxtx.html