una pantalla hacer cómo como captura ios iphone camera avfoundation avcapturesession

ios - como - cómo hacer una captura de pantalla en iphone 5



Cómo capturar imágenes de 5MP en dispositivos iPhone con cámara de 8MP? (3)

Quiero capturar imágenes con una resolución de 5 MP en un dispositivo iOS donde la resolución máxima de captura del sensor de imagen es de 8 MP.

Los ajustes preestablecidos provistos en Avfoundations AVCaptureSessionPresetPhoto dan - 3264x2448 - 8 MP de resolución VCaptureSessionPresetHigh da - 1920x1080 - 2 MP de resolución

¿Hay alguna forma / solución para capturar 5MP directamente, en lugar de capturar 8MP y luego reducir la escala?


¿Por qué no capturas la imagen con la cámara de 8MP y luego, antes de guardar la imagen, cambias su tamaño con una resolución de 5MP usando el siguiente método

+ (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize { UIGraphicsBeginImageContext( newSize ); [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; }

llama al método anterior en imagePickerDidFinishMediaWithInfoMethod antes de guardar la imagen capturada. El método anterior le devolverá una Uiimage con un tamaño cambiado (que debe proporcionar como CGSize).

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage * tempImage =[info objectForKey:UIImagePickerControllerOriginalImage]; CGSize mSize; mSize = CGSizeMake(your width and height as per 5MP mode); tempImage = [ViewController imageWithImage:tempImage scaledToSize:mSize]; // use this temp img as it would be in dimensions of 5MP image. }


iOS ofrece resoluciones de salida muy limitadas de la cámara.

Usted mencionó correctamente que el tamaño más grande es de 8MP y el siguiente preajuste baja a 1080p o ~ 2MP. La expectativa que parece es reducir / recortar la imagen según lo requiera la aplicación, sin embargo, el SDK no proporciona una sola API para obtener la resolución o imagen de salida requerida.

Espero que esto ayude.


AVCaptureSessionPreset solo proporciona resoluciones de constantes (Puede ver referencias de API). Si desea guardar la imagen en una resolución personalizada, puede encontrar aquí Guardar imagen con resolución personalizada