У меня есть 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")
}