美文网首页swiftSwift编程
Swift按大小将图片压缩成nsdata

Swift按大小将图片压缩成nsdata

作者: 我在鄱阳湖边 | 来源:发表于2018-07-16 17:30 被阅读6次

func compressOriginalImage(_ image: UIImage?, toMaxDataSizeKBytes size: CGFloat) -> Data? {

    var data = .uiImageJPEGRepresentation() as? Data

    var dataKBytes: CGFloat = Double((data?.count ?? 0)) / 1000.0

    var maxQuality: CGFloat = 0.9

    var lastData: CGFloat = dataKBytes

    while dataKBytes > size && maxQuality > 0.01 {

        maxQuality = maxQuality - 0.01

        data = .uiImageJPEGRepresentation() as? Data

        dataKBytes = Double((data?.count ?? 0)) / 1000.0

        if lastData == dataKBytes {

            break

        } else {

            lastData = dataKBytes

        }

    }

    return data

}

相关文章

网友评论

    本文标题:Swift按大小将图片压缩成nsdata

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