Сделайте снимок экрана всего представления, отображаемого в Swift UI. ⇐ IOS
Сделайте снимок экрана всего представления, отображаемого в Swift UI.
Я пытаюсь сделать снимок экрана своего быстрого пользовательского интерфейса и сохранить его как UIImage. Проблема, с которой я столкнулся, заключается в том, что он делает снимок экрана только верхнего слоя (у меня есть видео с задней камеры с наложением поверх него, оно сохраняет только изображение этого наложения).
частная функция captureScreenshot(ofviewToCapture:[UIView]) -> UIImage? { // Вычисляем объединенные границы всех представлений варкомбинированныйFrame = CGRect.zero для просмотра в viewToCapture { комбинированныйFrame = комбинированныйFrame.union(view.frame) } // Создаем новый контекст для объединенного размера UIGraphicsBeginImageContextWithOptions(combinedFrame.size, false, 0,0) // Перебираем представления и захватываем их содержимое для просмотра в viewToCapture { // Смещаем рамку представления по ее положению в объединенном изображении let offsetFrame = view.frame.offsetBy(dx: -combinedFrame.origin.x, dy: -combinedFrame.origin.y) view.drawHierarchy(in: offsetFrame, afterScreenUpdates: true) } // Получаем объединенное изображение пусть снимок экрана = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() вернуть скриншот } Это код, который я использую
Я пытался изменить структуру, которую использую для создания изображения, чтобы объединить скриншот вида видео с видом сверху, но мое приложение вылетало всякий раз, когда я пытался это сделать.
Я пытаюсь сделать снимок экрана своего быстрого пользовательского интерфейса и сохранить его как UIImage. Проблема, с которой я столкнулся, заключается в том, что он делает снимок экрана только верхнего слоя (у меня есть видео с задней камеры с наложением поверх него, оно сохраняет только изображение этого наложения).
частная функция captureScreenshot(ofviewToCapture:[UIView]) -> UIImage? { // Вычисляем объединенные границы всех представлений варкомбинированныйFrame = CGRect.zero для просмотра в viewToCapture { комбинированныйFrame = комбинированныйFrame.union(view.frame) } // Создаем новый контекст для объединенного размера UIGraphicsBeginImageContextWithOptions(combinedFrame.size, false, 0,0) // Перебираем представления и захватываем их содержимое для просмотра в viewToCapture { // Смещаем рамку представления по ее положению в объединенном изображении let offsetFrame = view.frame.offsetBy(dx: -combinedFrame.origin.x, dy: -combinedFrame.origin.y) view.drawHierarchy(in: offsetFrame, afterScreenUpdates: true) } // Получаем объединенное изображение пусть снимок экрана = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() вернуть скриншот } Это код, который я использую
Я пытался изменить структуру, которую использую для создания изображения, чтобы объединить скриншот вида видео с видом сверху, но мое приложение вылетало всякий раз, когда я пытался это сделать.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Сделайте снимок экрана с помощью ADB и получите его в Java БЕЗ записи файла.
Anonymous » » в форуме JAVA - 0 Ответы
- 51 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Сделайте снимок экрана с помощью ADB и получите его в Java БЕЗ записи файла.
Anonymous » » в форуме Android - 0 Ответы
- 47 Просмотры
-
Последнее сообщение Anonymous
-