Usted puede hacer esto con el nuevo material AVFoundation en IOS 4.0.
Debería poder llamar a UIGetScreenImage() (devuelve un UIImage) para obtener una captura actual de toda la pantalla, incluida la vista previa. Así es como todas las aplicaciones de códigos de barras funcionaban antes. Pero supuestamente, Apple no permite eso ahora y solo permite la técnica AVFoundation, que solo funciona por debajo de 4.0.
La razón por la que incluso hay un problema es porque UIGetScreenImage() no es parte de la API documentada, pero Apple hizo una excepción específica para usarla. No es como si estuvieran sacando aplicaciones actuales, pero no permiten nuevas presentaciones (o actualizaciones) que usan la técnica anterior.
Existe cierto cabildeo en nombre de varias personas para convencer a Apple de permitir que los desarrolladores de aplicaciones utilicen la técnica anterior solo para iOS 3.x, así que envíe un correo electrónico a las relaciones con el desarrollador si desea usarlo.
Creo que debería ser posible, ya que hay aplicaciones en la AppStore que claramente toman capturas de pantalla de la ventana de vista previa de la cámara (por ejemplo, QuadCam). Si llama a UIGetScreenImage() realmente obtiene una imagen de la vista previa de la cámara, pero esta es una función de API privada y no debe utilizarse. –
Sí, UIGetScreenImage toma el framebuffer actual. renderInContext dibuja la jerarquía de vista de la vista especificada en un contexto. Estas son cosas conceptualmente diferentes. –
Sí, entiendo eso. La razón por la que pregunto es por alguien llamado "Rolando" que ha publicado que tiene una tercera forma de guardar la vista previa de la cámara como una imagen, pero afirma que no puede divulgar la información debido a una NDA. http://blog.airsource.co.uk/index.php/2008/11/11/views-of-uiimagepickercontroller/ –