Как предотвратить сбой UIGraphicsImageRenderer.image() при использовании UIImage.draw() для рисования большого изображенIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Гость
 Как предотвратить сбой UIGraphicsImageRenderer.image() при использовании UIImage.draw() для рисования большого изображен

Сообщение Гость »


Работая в Swift, я пытаюсь выполнить обрезку и другие простые изменения фотографий в полном разрешении для своего приложения для iOS. Однако, когда я пытаюсь нарисовать полноразмерное изображение в контексте, происходит сбой из-за проблем с памятью.

Я хотел использовать UIGraphicsImageRenderer.image() и сохранить их как UIimage, потому что пользователь мог добавить изображение, не снятое камерой iPhone, и у меня возникла проблема проблемы с ориентацией. Я предполагаю, что вместо этого мне понадобится использовать CGimage или что-то еще, чтобы решить эту проблему, но мне хотелось бы получить некоторые идеи о том, что я делаю неправильно.

Вот соответствующий код. Размер холста задается пользователем, выбирающим качество экспорта, наибольшее значение составляет 4000 x 4000. Сбой происходит, когда UIImage (который хранится в классе, в котором находится эта функция) имеет размер файла фотографии iPhone с полным разрешением 4032 x 3024.
if let loadingImage = uiImage { пусть рендерер = UIGraphicsImageRenderer (размер: CanvasSize) пусть img = renderer.image(){ ctx в // создаем фон пусть прямоугольник = CGRect (x: 0, y: 0, ширина: CanvasWidth, высота: CanvasHeight) ctx.cgContext.setFillColor(UIColor.white.cgColor) ctx.cgContext.addRect(прямоугольник) ctx.cgContext.drawPath(с использованием: .fill) //рисуем изображение loadingImage.draw(в: photoRect) } // конец renderer.image uiImage = изображение }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»