Editar imagens Ultra HDR

O formato de imagem Ultra HDR codifica informações de luminosidade que permite que os dispositivos sejam exibidos em telas mais nítidas, imagens com cores mais intensas. Quando o app editar uma imagem Ultra HDR, é importante preservar essas informações de luminosidade. Isso é importante mesmo que o dispositivo do usuário não ofereça suporte à exibição de uma imagem Ultra HDR com intensidade total. Afinal, o usuário pode compartilhar a imagem dele com alguém que tenha um dispositivo. compatível com Ultra HDR. Eles também podem salvar a imagem e vê-la novamente novos dispositivos anos depois.

A boa notícia é que a maioria dos métodos do Android para edição de bitmaps oferece suporte ao formato de imagem Ultra HDR. Se você estiver fazendo edições básicas em uma imagem, como cortar ou girar, os métodos padrão do Android vão fazer o trabalho. Você vai ter uma imagem ultra HDR com as novas dimensões ou orientação.

O trabalho é mais complicado se você estiver modificando o conteúdo da imagem. Nesses casos, os métodos de edição padrão preservam as informações de luminosidade da imagem antiga, o que talvez não seja o que você quer. Nesses casos, talvez seja necessário editar ou remover o mapa de ganho (que codifica as informações de luminosidade da imagem) para chegar ao resultado certo.

Visão geral do formato Ultra HDR

O formato de imagem Ultra HDR é descrito em detalhes na especificação de imagem Ultra HDR. O mais importante é entender que uma imagem Ultra HDR contém uma imagem principal e um mapa de ganho.

  • A imagem principal tem as informações de cor de cada pixel da imagem.
  • O mapa de ganho é uma imagem JPEG padrão com as mesmas proporções que a imagem principal, embora não necessariamente tenham as mesmas dimensões em pixels. Cada pixel do mapa de ganho especifica a luminância da parte correspondente do imagem principal.

O mapa de ganhos pode ser em escala de cinza ou em cores. Se o mapa de ganho for colorido, cada O canal de cor no mapa de ganho especifica a luminância desse canal de cor a parte correspondente da imagem principal. Se o mapa de ganho estiver em escala de cinza, cada pixel do mapa de ganho especifica a luminância de todos os três canais de cores essa parte da imagem principal.

O mapa de ganho precisa ter as mesmas proporções que a imagem principal, mas não precisam ter as mesmas dimensões em pixels. Na verdade, quando a plataforma Android cria imagens Ultra HDR, ela cria um mapa de ganho com uma largura e altura menores do que a imagem principal. Isso torna o tamanho do arquivo significativamente menor, mas ainda codifica informações suficientes para um bom resultado. Isso significa que cada pixel no mapa de ganho pode armazenar as informações de luminância de vários pixels na imagem principal.

Edições básicas do Ultra HDR

Se você usa as APIs Bitmap do Android para fazer transformações básicas para uma imagem Ultra HDR, os métodos fazem as no mapa de ganho. As seguintes operações Bitmap são compatíveis:

  • Girar:se você girar uma imagem Ultra HDR, o método rotaciona o ganho. no mapa também.
  • Recorte: se você recortar uma imagem Ultra HDR, o método vai recortar o mapa de ganho adequadamente.
  • Escala:se você dimensionar uma imagem Ultra HDR, o método dimensiona o mapa de ganho por isso, ela tem metade da largura e metade da altura da imagem primária redimensionada.

Em cada caso, as informações de luminosidade são preservadas.

Edições avançadas em Ultra HDR

Se você fizer edições mais elaboradas em uma imagem Ultra HDR, o mapa de ganho será preservado sem alterações, o que pode não gerar os resultados esperados.

As edições comuns que podem resultar nessa situação incluem:

  • Adicionar adesivos ou emojis:o adesivo adicionado será o mesmo. luminosidade e nitidez de cor conforme a área em que foi colada.
  • Sobrepor uma segunda imagem: a nova imagem usaria a luminosidade e informações de nitidez de cor do conteúdo sobreposto.
  • Adição de filtros: as informações do mapa de ganho antigo podem não ser adequadas para a imagem principal modificada.

Em cada caso, as informações antigas de luminosidade e vívida de cor são preservadas, mas pode não ser apropriado para a imagem modificada.

Se o mapa de ganho original for apropriado para a imagem editada, você não precisa fazer nada. Se você quer modificar o mapa de ganho, o fluxo de trabalho usual é o seguinte:

  1. Busque o mapa de ganho atual da imagem chamando Bitmap.getGainmap() e armazená-la em cache.
  2. Modifique a imagem principal conforme necessário.
  3. Faça as edições correspondentes no mapa de ganho armazenado em cache. Por exemplo, se você colou um emoji na imagem principal, defina a parte correspondente do mapa de ganho para um valor neutro, como Color.GRAY.

  4. Aplique o mapa de ganho modificado à imagem chamando Bitmap.setGainmap().

Outros recursos

Para saber mais sobre imagens Ultra HDR, consulte os seguintes recursos: