Захват экрана на камере

81
6

Привет всем. Я хочу захватить снимок экрана, когда камера появилась. Сценарий заключается в том, что я добавляю наложение на камеру. И когда пользователь настраивает камеру и кнопку захвата таппа. Я хочу создать изображение, что на экране. Я попытался сделать снимок экрана, используя этот код, но только наложение - это захват не изображения. Это камера пустая.

Я также видел этот ответ

но он только захватывает изображение, а не вид сверху

спросил(а) 2014-05-29T21:45:00+04:00 6 лет, 4 месяца назад
1
Решение
58

Вы можете взять изображение, полученное от UIImagePickerController (тот, который получен в методе didFinishPickingMediaWithInfo от делегата) и объединить его с вашим видом наложения следующим образом:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

UIImage *cameraImage = The image captured by the camera;
UIImage *overlayImage = Your overlay;
UIImage *computedImage = nil;

UIGraphicsBeginImageContextWithOptions(cameraImage.size, NO, 0.0f);
[cameraImage drawInRect:CGRectMake(0, 0, cameraImage.size.width, cameraImage.size.height)];
[overlayImage drawInRect:CGRectMake(0, 0, overlayImage.size.width, overlayImage.size.height)];

computedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

dispatch_async(dispatch_get_main_queue(), ^{
// don't forget to go back to the main thread to access the UI again
});
});

EDIT: я добавил несколько dispatch_async, чтобы избежать блокировки пользовательского интерфейса.

ответил(а) 2014-05-29T21:54:00+04:00 6 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема