iOS Свифт, я могу нарисовать прямо на фоновое изображение UIImageView? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть UIImageView, и я программно генерирую изображение для отображения внутри него, используя CoreGraphics.

Я рисую изображение, которое в данный момент отображается в UIImageView, в новом графическом контексте затем поместите обновление и выведите его в том же контексте поверх исходного изображения. Затем я назначаю обновленное изображение обратно UIImageView.

Мои проблемы заключаются в том, что операция обработки и отрисовки очень больших изображений (2880 x 2880) занимает много времени, и я хотел бы показать пользователю, как изображение рисуется постепенно. Я думаю, что если я найду способ рисовать прямо на основе представления изображения, я смогу получить более отзывчивый рисунок.

Есть ли способ рисовать прямо в контексте графика c UIImageView или его поддержки?

Я хочу заменить эту операцию более эффективным и отзывчивым методом рисования:

    let imageToUpdate = ... //current image inside UIImageView
    let newSegment = ... //update I want to add to existing image

    UIGraphicsBeginImageContextWithOptions(size, false, 0.0)

    imageToUpdate?.draw(in: CGRect(origin: CGPoint(x: 0, y: 0),
                                   size: size))
    newSegment.draw(in: offsetRect)

    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

if let unwrapped = newImage {
    imageView.image = unwrapped //user sees new image here
} else {
    print("Error generating image")
}
...