CameraX: la nueva arma de Google en las guerras de la fotografía

Desde que introdujo Android, Google ha tenido dificultades para proporcionar un marco de cámara para los desarrolladores que les permita crear aplicaciones habilitadas para cámara rápidamente y aprovechar las capacidades avanzadas que ofrecen los fabricantes de teléfonos. Su primera API de cámara era limitada y la segunda versión es complicada. Tampoco tiene una forma independiente del proveedor para activar algunos de los modos avanzados que se han agregado a los teléfonos para mejorar la calidad de la imagen y agregar efectos estilísticos. Ahora, Google está lanzando CameraX, una biblioteca que proporciona no solo una forma simplificada para que los desarrolladores accedan a la funcionalidad Camera2 de Android, sino que también proporciona extensiones para capacidades adicionales.

CameraX es una forma más sencilla de aprovechar el poder de Camera2

Android logosCameraX se proporciona como una biblioteca de soporte de Jetpack, y la parte básica de su capacidad se puede utilizar en versiones del sistema operativo Android hasta Android 5.0 (API nivel 21). Sus envoltorios proporcionan un conjunto de interfaces centradas en casos de uso para Camera2 y agregan conciencia del ciclo de vida para ayudar a reducir la sobrecarga de programación. Google también dice que reduce las dependencias de los dispositivos, por lo que el código CameraX debería ejecutarse en todo tipo de hardware (también hay llamadas para preguntar si un dispositivo tiene una capacidad particular como una cámara frontal).

Para trabajar con CameraX, un desarrollador especifica un caso de uso deseado con opciones de configuración. Luego, se agregan oyentes para manejar la salida de datos de la biblioteca CameraX, que puede ser en forma de flujo de datos o escribirse directamente en un archivo. Por último, los casos de uso están vinculados a los ciclos de vida de la arquitectura de Android, de modo que CameraX puede manejar algunas de las tareas de limpieza asociadas con la configuración y el desmontaje de recursos para la aplicación. Una característica interesante de CameraX es que se pueden ejecutar múltiples casos de uso simultáneamente, por lo que una vista previa puede permanecer en vivo mientras se analizan las imágenes o el video y tal vez se capturan, por ejemplo.



Las vistas previas de CameraX están vinculadas a las texturas de la superficie

Las vistas previas de CameraX están vinculadas a las texturas de la superficie

CameraX admite varios casos de uso: Vista previa, para obtener una imagen en la pantalla; Análisis de imágenes, para obtener acceso directo al búfer de imágenes; y captura de imágenes, para guardar una imagen o un video completamente procesado. Google proporciona varios aplicaciones de muestra para varios casos de uso. Como es la tendencia reciente, los que miré están escritos en Kotlin con versiones alternativas de Java.

Después de algunas líneas de configuración, los comandos de CameraX son bastante sencillos. Por ejemplo, para capturar simplemente una imagen de la cámara, existe un método takePicture (). Antes de llamarlo, otra simple llamada le permite a una aplicación seleccionar qué cámara usar o establecer otros parámetros. Como era de esperar, CameraX requiere que la aplicación tenga permisos CAMERA y permiso WRITE_EXTERNAL_STORAGE en versiones de Android anteriores a Q si desea capturar directamente en el sistema de archivos.

Ampliación de la captura de imágenes RAW a escenarios de fotogramas múltiples

Google tiene un laboratorio de pruebas dedicado que ha trabajado con 52 dispositivos en el desarrollo de la biblioteca.Fue un gran avance en la capacidad cuando los teléfonos Android comenzaron a ofrecer la opción de guardar imágenes RAW para un procesamiento posterior posterior, en lugar de solo permitir el acceso a sus versiones JPEG preprocesadas. Pero dado que los teléfonos inteligentes dependen cada vez más de la combinación sofisticada de varios fotogramas para crear una única salida, el posprocesamiento de un único fotograma RAW no siempre es la mejor opción. Con CameraX, los desarrolladores de aplicaciones pueden leer directamente el flujo de fotogramas provenientes de la cámara. Eso es importante para aplicaciones como el aprendizaje automático y la realidad aumentada (AR). Sin embargo, también es una bendición potencial para aquellos que quieran proporcionar sus propios canales de procesamiento de imágenes, ya sea en el dispositivo o más tarde en una computadora de escritorio o en la nube.

CameraX ofrece extensiones para HDR, noche, retrato y belleza

Usando extensiones, las aplicaciones pueden obtener una vista previa de los efectos, incluido el modo Retrato, como en este Huawei Mate 20 ProUn área que ha hecho que las aplicaciones de cámaras de terceros sean menos atractivas es la dificultad que tienen para aprovechar las capacidades avanzadas de imágenes computacionales de los modelos más nuevos de teléfonos inteligentes. Para los dispositivos que admiten extensiones de CameraX, las aplicaciones pueden acceder a sus modos avanzados, incluidos HDR, fotografía nocturna, modo de retrato y mejoras de belleza con la simple adición de unas pocas líneas de código a una aplicación de Camera2 existente.

Para que una aplicación tenga acceso a una extensión, el fabricante del teléfono debe agregar un enlace a la biblioteca CameraX a la propia API del proveedor. Si un proveedor no proporciona una implementación de una capacidad, CameraX simplemente informa que no está disponible. Actualmente, los desarrolladores que utilizan la versión alfa de CameraX pueden utilizar extensiones en los siguientes teléfonos:

  • Samsung (HDR, Noche, Belleza, Automático): Serie Galaxy Note 10 (en la imagen, arriba)
    (demostrado en el SDC19 de Samsung)
  • Huawei (HDR, retrato): serie Mate 20, serie P30, Honor Magic 2, Honor View 20

Lanzamiento de CameraX

CameraX se encuentra actualmente en estado alfa, pero se espera que llegue al estado beta, es decir, API finales según Google, en diciembre. Samsung mostró su apoyo a CameraX esta semana en su Conferencia de Desarrolladores de Software, y coorganizó una sesión con Google sobre cómo los desarrolladores pueden aprovechar tanto CameraX como sus extensiones en los últimos teléfonos Samsung.

Copyright © Todos Los Derechos Reservados | 2007es.com