Cómo editar imágenes Ultra HDR

El formato de imagen Ultra HDR codifica la información de luminosidad que permite que los dispositivos se muestren más brillantes con colores más intensos. Cuando tu app edita una imagen Ultra HDR, queremos asegurarse de preservar esa información de luminosidad. Esto es importante incluso si los El dispositivo del usuario no permite mostrar una imagen Ultra HDR en su totalidad la intensidad de la señal. Después de todo, el usuario podría compartir su imagen con alguien que tenga un dispositivo compatible con Ultra HDR, o podría guardarla y volver a verla en un dispositivo nuevo años después.

La buena noticia es que la mayoría de los métodos de Android para editar mapas de bits son compatibles con Ultra HDR. formato de imagen. Si realizas ediciones básicas en una imagen, como recortarla o girarla, los métodos estándar de Android hacen el trabajo. Tendrás una imagen ultra HDR con las dimensiones o la orientación nuevas.

La tarea es más complicada si modificas el contenido de la imagen. En esos de edición estándar, los métodos de edición estándar conservan la información de luminosidad de la antigua, que posiblemente no sea lo que deseas. En esos casos, es posible que debas editar o quitar el mapa de ganancia (que codifica la información de luminosidad de la imagen) para obtener el resultado correcto.

Descripción general del formato Ultra HDR

El formato de imagen Ultra HDR se describe en detalle en el artículo Imagen Ultra HDR. especificación. Lo más importante es comprender La imagen Ultra HDR contiene una imagen principal y un mapa de ganancia.

  • La imagen principal tiene la información de color de cada píxel de la imagen.
  • El mapa de ganancia es una imagen JPEG estándar con las mismas proporciones que la imagen principal, aunque no necesariamente tienen las mismas dimensiones en píxeles. Cada píxel del mapa de ganancia especifica la luminancia de la parte correspondiente de la imagen principal.

El mapa de ganancia puede ser en escala de grises o en color. Si el mapa de ganancia está en color, cada en el mapa de ganancia, se especifica la luminancia de ese canal de color en la parte correspondiente de la imagen principal. Si el mapa de ganancia es en escala de grises, cada píxel del mapa de ganancia especifica la luminancia de los tres canales de color en esa parte de la imagen principal.

El mapa de ganancias debe tener las mismas proporciones que la imagen principal, pero no es necesario que tenga las mismas dimensiones de píxeles. De hecho, cuando la plataforma de Android crea imágenes Ultra HDR, crea un mapa de ganancia con un ancho y una altura más pequeños que la imagen principal. De esta manera, el tamaño del archivo se reduce significativamente, pero aún codifica suficiente información para obtener un buen resultado. Esto significa que cada píxel en el mapa de ganancia puede almacenar la información de luminancia de varios píxeles en la imagen principal.

Ediciones básicas de Ultra HDR

Si usas las APIs de Bitmap de Android para hacer lo siguiente: transformaciones básicas a una imagen Ultra HDR, los métodos hacen que cambios en el mapa de ganancia. Se admiten las siguientes operaciones de Bitmap:

  • Rotación: Si rota una imagen Ultra HDR, el método también rota el mapa de ganancia.
  • Recorte: Si recortas una imagen Ultra HDR, el método recorta el mapa de ganancia de manera adecuada.
  • Escalamiento: Si escalas una imagen Ultra HDR, el método ajusta el mapa de ganancia. por lo que tiene la mitad del ancho y la mitad del alto de la imagen principal a la que le cambiaste el tamaño.

En cada caso, se conserva la información de luminosidad.

Ediciones avanzadas de Ultra HDR

Si realizas cambios más elaborados en una imagen Ultra HDR, el mapa de ganancia se conserven sin cambios, lo que podría no darte los resultados que deseas.

Modificaciones comunes que podrían dar lugar a esta situación incluyen las siguientes:

  • Agregar calcomanías o emojis:La calcomanía agregada tendría la misma los valores de luminosidad y intensidad del color, como el área donde se pegó.
  • Superposición de una segunda imagen: La nueva imagen usará la luminosidad y información sobre la intensidad del color del contenido que se superpone.
  • Agregar filtros: Es posible que la información del mapa de ganancia anterior no sea adecuada para la imagen principal modificada.

En cada caso, se conserva la antigua información de luminosidad y intensidad del color, pero podría no ser adecuada para la imagen modificada.

Si el mapa de ganancia original es apropiado para la imagen editada, no tienes que hacer nada. Si deseas modificar el mapa de ganancia , el flujo de trabajo habitual es el siguiente:

  1. Recupera el mapa de ganancia actual de la imagen mediante una llamada a Bitmap.getGainmap() y almacenarla en caché.
  2. Modifica la imagen principal como desees.
  3. Realiza las modificaciones correspondientes en el mapa de ganancia almacenado en caché. Por ejemplo, si pegaste un emoji en la imagen principal, puedes establecer la parte correspondiente del mapa de ganancia en un valor neutral, como Color.GRAY.

  4. Aplica el mapa de ganancia modificado a la imagen llamando Bitmap.setGainmap()

Recursos adicionales

Para obtener más información sobre las imágenes Ultra HDR, consulta los siguientes recursos adicionales: