gpt4 book ai didi

swift - 使用 UIGraphicsImageRenderer 类捕获 UIView 时图像质量差

转载 作者:搜寻专家 更新时间:2023-11-01 07:01:54 26 4
gpt4 key购买 nike

我目前正在使用这种非常流行的方法来捕获 View ,以便用户分享它或将它保存到他的照片库中:

let renderer = UIGraphicsImageRenderer(size: CGSize(width: self.viewToCapture.bounds.size.width, height: self.viewToCapture.bounds.size.height))

let image = renderer.image { ctx in
self.viewToCapture.drawHierarchy(in: self.viewToCapture.bounds, afterScreenUpdates: true)
}

但问题是这样做的结果非常不令人满意,因为图像的图像分辨率不是很好。直到现在,我还没有找到另一种方法来做到这一点。渲染器没有任何可以调整渲染图像质量的属性(或者至少我知道没有)。

所以,我正在寻找对上面显示的方式的修改,或者可能是另一种捕获 View 的方式并获得完美清晰的图像。如果您能分享关于该问题的知识,我们将很高兴。提前致谢。

最佳答案

我使用此扩展从 View 创建图像UIGraphicsGetCurrentContext() 返回对当前图形上下文的引用。它不会创建一个。记住这一点很重要,因为如果您从这个角度来看它,您会发现它不需要大小参数,因为当前上下文就是创建图形上下文时使用的大小。

  extension UIView {
func toImage() -> UIImage? {
UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.main.scale)

drawHierarchy(in: self.bounds, afterScreenUpdates: true)

let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

return image
}
}

关于swift - 使用 UIGraphicsImageRenderer 类捕获 UIView 时图像质量差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50686463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com