tomar retrato profesionales para modo mejores las gratis fotos fotografia celular camara app aplicaciones iphone objective-c cocoa-touch avfoundation

retrato - app para tomar fotos profesionales iphone



Emulando las aplicaciones de cámara ''tocar para enfocar'' (1)

Estoy tratando de emular la funcionalidad básica de la aplicación incorporada de la cámara. Hasta ahora, me he quedado atascado en la función ''tocar para enfocar''.

Tengo una vista UIV desde la que estoy recogiendo eventos UITouch cuando se toca un solo dedo en la vista UIV. Se llama a este método, pero el enfoque de la cámara y la exposición no cambian.

-(void)handleFocus:(UITouch*)touch { if( [camera lockForConfiguration:nil] ) { CGPoint location = [touch locationInView:cameraView]; if( [camera isFocusPointOfInterestSupported] ) camera.focusPointOfInterest = location; if( [camera isExposurePointOfInterestSupported] ) camera.exposurePointOfInterest = location; [camera unlockForConfiguration]; [cameraView animFocus:location]; } }

''camera'' es mi AVCaptureDevice y no es nulo. ¿Alguien puede decirme adónde voy mal?

Pistas y abucheos todos bienvenidos.

METRO.


Este fragmento podría ayudarlo ... Hay un CamDemo proporcionado por Apple flotando alrededor que le permite enfocar, cambiar la exposición al tocar, configurar flash, intercambiar cámaras y más, emula bastante bien la aplicación de la cámara, no estoy seguro de si podrá para encontrarlo ya que era parte de wwdc, pero si deja alguna dirección de correo electrónico en los comentarios, puedo enviarle el código de muestra por correo electrónico ...

- (void) focusAtPoint:(CGPoint)point { AVCaptureDevice *device = [[self videoInput] device]; if ([device isFocusPointOfInterestSupported] && [device isFocusModeSupported:AVCaptureFocusModeAutoFocus]) { NSError *error; if ([device lockForConfiguration:&error]) { [device setFocusPointOfInterest:point]; [device setFocusMode:AVCaptureFocusModeAutoFocus]; [device unlockForConfiguration]; } else { id delegate = [self delegate]; if ([delegate respondsToSelector:@selector(acquiringDeviceLockFailedWithError:)]) { [delegate acquiringDeviceLockFailedWithError:error]; } } } }