gpt4 book ai didi

ios - 如何从 UIView 捕获高分辨率图像

转载 作者:行者123 更新时间:2023-12-04 12:35:43 32 4
gpt4 key购买 nike

我希望你们都安全。

我知道这个问题被问了好几次,但没有得到完美的答案。

我只是想从 UIView 捕获高分辨率的图像,主要是图像不应该是模糊的。

我试过这段代码

extension UIView {
func asImage() -> UIImage {
let renderer = UIGraphicsImageRenderer(size: self.bounds.size)
let capturedImage = renderer.image {
(ctx) in
self.drawHierarchy(in: self.bounds, afterScreenUpdates: true)
}
return capturedImage
}
}

现在,当我捕获图像并缩放时,文本变得模糊。

提前致谢

已编辑
我正在尝试从 UIView 创建高分辨率图像。当我缩放图像的 1 部分时,文本变得模糊。

请检查下图

enter image description here

最佳答案

您可以设置contentScaleFactor属性以获得清晰度,如 this 中所述.
例如,您可以使用以下代码,

extension UIView {

func scale(by scale: CGFloat) {
self.contentScaleFactor = scale
for subview in self.subviews {
subview.scale(by: scale)
}
}

func takeScreenshot(with scale: CGFloat? = nil) -> UIImage {
let newScale = scale ?? UIScreen.main.scale
self.scale(by: newScale)
let format = UIGraphicsImageRendererFormat()
format.scale = newScale
let renderer = UIGraphicsImageRenderer(size: self.bounds.size, format: format)
let image = renderer.image { rendererContext in
self.layer.render(in: rendererContext.cgContext)
}
return image
}
}
通过以下方式获取高分辨率图像,
let image = myView.takeScreenshot(with: 5.0)

关于ios - 如何从 UIView 捕获高分辨率图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61942820/

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