Получить видимую часть изображения из UIimageView в Scrollview - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть UIImageView в UIScrollView, в котором можно увеличивать и уменьшать масштаб.Теперь, после того как пользователь выбрал конкретный контент для увеличения, я хочу обрезать ту часть изображения, которая присутствует в scrollview, и получить ее в виде на 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.

Эта логика - просто базовая запись содержимого экрана.

Я знаю, что может быть лучший путь, но я не могу найти решение.Любая помощь высоко ценится.

1 Ответ

0 голосов
/ 09 февраля 2019

Вы можете попробовать это:

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

Также я не уверен, но качество изображения может улучшиться, если вы инициализируете контекст изображения с помощью этого кода: UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)

...