Получение графического представления предварительного просмотра камеры в UIImagePickerController - PullRequest
5 голосов
/ 02 марта 2009

Когда я использую стандартный метод [view.layer renderInContext:UIGraphicsGetCurrentContext()]; для преобразования видов в изображения на модальном виде с камеры iPhone, все, что я получаю, это элементы управления с черным, где был предварительный просмотр камеры.

У кого-нибудь есть решение для этого? Скорость не проблема.

Ответы [ 4 ]

4 голосов
/ 25 марта 2009

Невозможно из документированного API, но возможно. Найдите представление «PLCameraView» в подпредставлениях камеры, затем вызовите

CGImageRef img = (CGImageRef)[foundCameraView imageRef];

Будет возвращена ссылка на изображение, которое содержит камера.

2 голосов
/ 02 августа 2010

Вы можете сделать это с помощью новой функции AVFoundation в iOS 4.0.

Вы должны иметь возможность вызывать UIGetScreenImage () (возвращает UIImage), чтобы получить текущий снимок всего экрана, включая предварительный просмотр. Так работали все приложения со штрих-кодом. Но якобы Apple не разрешает использовать технологию AVFoundation, которая работает только под 4.0.

Причина, по которой есть проблема, заключается в том, что UIGetScreenImage () не является частью документированного API, но Apple сделала специальное исключение для его использования. Не похоже, что они тянут текущие приложения, но они не позволяют новые представления (или обновления), которые используют более старую технику.

Некоторые люди лоббируют от имени людей, чтобы убедить Apple разрешить разработчикам приложений использовать старый метод только для iOS 3.x, поэтому отправьте электронное письмо разработчикам, если хотите его использовать.

0 голосов
/ 02 августа 2010

Вы можете попробовать AVCaptureVideoPreviewLayer

0 голосов
/ 02 марта 2009

К сожалению, это невозможно. Для производительности iPhone использует некоторую форму прямого рендеринга, чтобы нарисовать предварительный просмотр камеры непосредственно на экране, а не как часть поверхности UIView. Таким образом, когда вы «захватываете» изображение с камеры, вы получаете только элементы UIView, а не изображение предварительного просмотра.

(ПОЭТОМУ это похоже на причины, по которым сложно сделать скриншот некоторых программ для фильмов в Windows / Mac)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...