Вы можете сделать это с новым AVFoundation вещи в прошивкой 4.0.
Вы должны иметь возможность вызвать UIGetScreenImage() (возвращает UIImage), чтобы получить текущий захват всего экрана, включая предварительный просмотр. Так работали все приложения для штрих-кодов. Но, предположительно, Apple не разрешает это сейчас и только разрешает технику AVFoundation, которая работает только под 4.0.
Все дело в том, что UIGetScreenImage() не является частью документированного API, но Apple сделала конкретное исключение для его использования. Это не похоже на то, что они тянут текущие приложения, но они не разрешают новые материалы (или обновления), которые используют более старый метод.
Есть несколько лоббистов от имени многих людей, чтобы убедить Apple, чтобы разработчики приложений использовали старую технику только для iOS 3.x, поэтому отправьте электронное письмо на отношения с разработчиками, если вы хотите его использовать.
Я думаю, что это должно быть возможно, так как в AppStore есть приложения, которые явно делают скриншоты окна предварительного просмотра камеры (например, QuadCam). Если вы вызываете UIGetScreenImage(), вы действительно получаете изображение предварительного просмотра камеры, но это частная функция API и не должна использоваться. –
Да, UIGetScreenImage захватывает текущий фреймбуфер. renderInContext рисует иерархию представлений указанного представления в контексте. Это концептуально разные вещи. –
Да, я это понимаю. Причина, по которой я спрашиваю, - это кто-то по имени «Роландо» опубликовал, что у него есть третий способ сохранить предварительный просмотр камеры в качестве изображения, но утверждает, что он не может разглашать информацию из-за NDA. http://blog.airsource.co.uk/index.php/2008/11/11/views-of-uiimagepickercontroller/ –