Modifier des images Ultra HDR

Le format d'image Ultra HDR encode les informations sur la luminosité. qui permet aux appareils de bénéficier d'un affichage plus lumineux images avec des couleurs plus intenses. Lorsque votre application modifie une image Ultra HDR, vous devez vous assurer de conserver ces informations sur la luminosité. Cela est important, même si l'appareil de l'utilisateur n'est pas compatible avec l'affichage d'une image Ultra HDR à pleine intensité. Après tout, l'utilisateur peut partager son image avec quelqu'un qui utilise un appareil compatible avec l'Ultra HDR, ou enregistrer l'image et la regarder à nouveau des années plus tard.

Heureusement, la plupart des méthodes Android de modification des bitmaps sont compatibles avec l'Ultra HDR. format d'image. Si vous apportez des modifications de base à une image, comme la recadrer ou la faire pivoter, les méthodes Android standards font l'affaire. Vous obtiendrez une image ultra HDR avec les nouvelles dimensions ou l'orientation.

La tâche est plus délicate si vous modifiez le contenu de l'image. Dans ce cas, les méthodes de retouche standards conservent les informations de luminosité de l'ancienne image, ce qui n'est peut-être pas ce que vous souhaitez. Dans ce cas, vous devrez peut-être Modifier ou supprimer la carte de gain (qui encode les informations de luminosité de l'image) pour obtenir le bon résultat.

Présentation du format Ultra HDR

Le format d'image Ultra HDR est décrit en détail dans la spécification d'image Ultra HDR. L'essentiel à retenir est qu'une image Ultra HDR contient à la fois une image principale et une carte de gain.

  • L'image principale contient les informations de couleur pour chaque pixel de l'image.
  • La carte de gain est une image JPEG standard ayant les mêmes proportions que l'image principale, mais pas nécessairement les mêmes dimensions en pixels. Chaque pixel de la carte de gain spécifie la luminance de la partie correspondante de l'image principale.

La carte de gain peut être en nuances de gris ou en couleur. Si la carte de gain est en couleur, chaque le canal de couleur sur la carte de gain spécifie la luminance de ce canal de couleur sur la partie correspondante de l'image principale. Si la carte de gain est en niveaux de gris, chaque pixel de la carte de gain spécifie la luminance des trois canaux de couleur sur cette partie de l'image principale.

La carte de gain doit avoir les mêmes proportions que l'image principale, mais pas nécessairement les mêmes dimensions en pixels. En fait, lorsque la plate-forme Android crée des images Ultra HDR, et crée une carte de gain avec une largeur et une hauteur inférieures. que l'image principale. cela réduit considérablement la taille du fichier, mais encode suffisamment d'informations pour obtenir un bon résultat. Cela signifie que chaque pixel dans la carte de gain peut stocker les informations de luminance de plusieurs pixels dans le l'image principale.

Retouches Ultra HDR de base

Si vous utilisez les API Bitmap Android pour créer des transformations de base en une image Ultra HDR, les méthodes permettent les changements apportés à la carte de gain. Les opérations Bitmap suivantes sont acceptées :

  • Rotation : si vous faites pivoter une image Ultra HDR, la méthode fait également pivoter la carte de gain.
  • Recadrer : si vous recadrez une image Ultra HDR, la méthode recadre la carte de gain de manière appropriée.
  • Échelle : si vous mettez à l'échelle une image Ultra HDR, la méthode met à l'échelle la carte de gain afin qu'elle ait la moitié de la largeur et de la hauteur de l'image principale redimensionnée.

Dans tous les cas, les informations sur la luminosité sont conservées.

Modifications avancées Ultra HDR

Si vous apportez des modifications plus élaborées à une image Ultra HDR, la carte de gain est conservée telle quelle, ce qui peut ne pas vous donner les résultats souhaités.

Voici quelques modifications courantes pouvant entraîner cette situation:

  • Ajouter des autocollants ou des emoji : l'autocollant ajouté aura les mêmes valeurs de luminosité et de vivacité des couleurs que la zone sur laquelle il a été collé.
  • Superposition d'une deuxième image:la nouvelle image utilise la luminosité et des informations sur la vivacité des couleurs du contenu auquel elle se superpose.
  • Ajouter des filtres : les informations de l'ancienne carte de gain peuvent ne pas être adaptées à l'image principale modifiée.

Dans chaque cas, les anciennes informations sur la luminosité et la vivacité des couleurs sont conservées, mais elles peuvent ne pas être adaptées à l'image modifiée.

Si la carte de gain d'origine est adaptée à l'image modifiée, vous n'avez pas besoin faire quoi que ce soit. Si vous voulez modifier la carte de gain, le workflow habituel est le suivant :

  1. Récupérez la carte de gain actuelle de l'image en appelant Bitmap.getGainmap() et mettez-la en cache.
  2. Modifiez l'image principale si vous le souhaitez.
  3. Apportez les modifications correspondantes à la carte de gain mise en cache. Par exemple, si vous que vous avez collé un emoji sur l'image principale, vous pouvez définir le du gain sont mappés à une valeur neutre, telle que Color.GRAY.

  4. Appliquez la carte de gain modifiée à l'image en appelant la méthode Bitmap.setGainmap()

Ressources supplémentaires

Pour en savoir plus sur les images Ultra HDR, consultez les ressources supplémentaires suivantes: