美文网首页
iOS图片更改分辨率和的两种方法

iOS图片更改分辨率和的两种方法

作者: ufogxl | 来源:发表于2021-09-25 22:46 被阅读0次

分辨率调整

这里使用画布(Context)对原始图片进行重新绘制

extension UIImage {
    func resizedImage(newWidth:CGFloat) -> UIImage?{
        if size.width <= newWidth{
            return fixOrientation()//需要时进行方向修正
        }
        let scale = size.width / size.height
        let newSize = CGSize(width: newWidth, height: newWidth / scale)
        UIGraphicsBeginImageContext(newSize)
        self.draw(in: CGRect(origin: .zero, size: newSize))
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return newImage
    }
    
    func fixOrientation() -> UIImage?{
        if imageOrientation != .up{
            UIGraphicsBeginImageContext(size)
            draw(in: CGRect(origin: .zero, size: size))
            let newImage = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            return newImage
        }
        return self
    }
}

使用:

let newImage = image?.resizedImage(newWidth:1000)

不更改分辨率缩小图片data大小

可以使用自带的jpeg压缩

let new image = image.jpegData(compressionQuality: 0.99)

实际使用的时候发现压缩系数为0.99相比压缩系数为1.0时生成的data长度小了一半,也没有花时间去对比质量(能用就行。。。)

相关文章

网友评论

      本文标题:iOS图片更改分辨率和的两种方法

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