Я видел на Stackoverflow дюжину подобных вопросов.Слияние изображения с уменьшенным изображением с изображениями из подпунктов, оставшихся в исходном размере
Несмотря на то, что ни одна из них не помогла. У меня есть приложение, где я делаю фотографию, а затем добавляю несколько изображений по этой фотографии. Затем мне нужно сохранить фотографию с изображениями, которые я надел. Вот как моя структура выглядит следующим образом:
Как вы можете видеть, у меня есть Photo Scroll View
с Photo View
внутри. Каждая добавленная наклейка входит в Photo Scroll View
в качестве подзаголовка.
Теперь, как я могу объединить все изображения с Photo Scroll View
в одно изображение. До сих пор мне удалось сохранить его с размером экрана, который определенно слишком мал.
func saveImage(_ sender: Any) {
//Create the UIImage
UIGraphicsBeginImageContext(photoScrollView.frame.size)
photoScrollView.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
//Save it to the camera roll
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}
Кроме того, я попробовал его, создав снимок. В этом случае изображение содержало только белый экран и ничего больше (и это не цвет фона любого вида).
func saveImage(_ sender: Any) {
let snapShot:UIView = self.photoScrollView.snapshotView(afterScreenUpdates: true)!
UIGraphicsBeginImageContext(self.photoScrollView.bounds.size)
snapShot.drawHierarchy(in: self.photoScrollView.bounds, afterScreenUpdates: true)
let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}
Может ли кто-нибудь мне помочь?
Использование первой попытки, вызовите 'photoScrollView.draw (Прямоугольник: photoScrollView.frame)' –
@gkchristopher я заменил 'photoScrollView.layer.render (в: UIGraphicsGetCurrentContext()!) 'с' photoScrollView.draw (rect: photoScrollView.frame) '. Не помогло. Результат - это просто белое изображение, а фон 'photoScrollView' - зеленый. –