【问题标题】:Get Visible portion Image from UIimageView in Scrollview从 Scrollview 中的 UIimageView 获取可见部分图像
【发布时间】:2019-07-02 13:13:49
【问题描述】:

我在 UIScrollView 中有一个 UIImageView,可以在其中放大和缩小。现在,在用户选择了要放大的特定内容后,我想裁剪滚动视图上存在的那部分图像,并以 UIImage 的形式获取它。

为此我正在使用

extension UIScrollView {

var snapshotVisibleArea: UIImage? {
    UIGraphicsBeginImageContext(bounds.size)
    UIGraphicsGetCurrentContext()?.translateBy(x: -contentOffset.x, y: -contentOffset.y)
    layer.render(in: UIGraphicsGetCurrentContext()!)
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return image
}

}

但是当我实现这个时,图像的质量会大大降低。即使我使用 4K 图像,最终产品看起来也像 360p 分辨率。

此逻辑只是对屏幕内容的基本捕获。

我知道可以有更好的方法,但我无法找到解决方案。 非常感谢任何帮助。

【问题讨论】:

    标签: ios swift uiscrollview uiimageview uiimage


    【解决方案1】:

    你可以试试这个:

    let context:CGContext = UIGraphicsGetCurrentContext()!
    context.interpolationQuality = .high
    

    我也不确定,但如果您使用以下代码初始化图像上下文,图像质量可能会提高:UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)

    【讨论】:

    • 完美运行。谢谢你。干杯!
    猜你喜欢
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    相关资源
    最近更新 更多