Ultra HDR-Bilder bearbeiten

Das Ultra-HDR-Bildformat codiert Leuchtkraftinformationen, mit denen Geräte hellere Bilder mit intensiveren Farben anzeigen können. Wenn Sie in Ihrer App ein Ultra-HDR-Bild bearbeiten, sollten Sie diese Informationen zur Leuchtkraft beibehalten. Das ist auch dann wichtig, wenn das Gerät des Nutzers die Anzeige eines Ultra-HDR-Bilds in voller Intensität nicht unterstützt. Schließlich kann der Nutzer sein Bild mit einer Person teilen, die ein Gerät mit Ultra-HDR-Unterstützung hat, oder es speichern und sich Jahre später auf einem neuen Gerät ansehen.

Die meisten Android-Methoden zum Bearbeiten von Bitmaps unterstützen das Ultra-HDR-Bildformat. Wenn Sie ein Bild nur grundlegend bearbeiten, z. B. zuschneiden oder drehen, reichen die Standardmethoden von Android aus. Sie erhalten ein Ultra-HDR-Bild mit den neuen Abmessungen oder der neuen Ausrichtung.

Die Aufgabe ist schwieriger, wenn Sie den Inhalt des Bildes ändern. In diesen Fällen bleiben bei den Standardbearbeitungsmethoden die Informationen zur Leuchtkraft des alten Bildes erhalten, was nicht unbedingt gewünscht ist. In diesen Fällen müssen Sie möglicherweise die Gain-Map (die die Luminanzinformationen des Bildes codiert) bearbeiten oder entfernen, um das richtige Ergebnis zu erhalten.

Ultra-HDR-Format – Übersicht

Das Ultra HDR-Bildformat wird ausführlich in der Ultra HDR-Bildspezifikation beschrieben. Das Wichtigste ist, dass ein Ultra-HDR-Bild sowohl ein Primärbild als auch eine Gewinnkarte enthält.

  • Das Hauptbild enthält die Farbinformationen für jedes Pixel des Bilds.
  • Die Verstärkungskarte ist ein standardmäßiges JPEG-Bild mit denselben Proportionen wie das Hauptbild, aber nicht unbedingt mit denselben Pixelabmessungen. Jedes Pixel der Verstärkungskarte gibt die Leuchtkraft des entsprechenden Teils des primären Bildes an.

Die Verstärkungskarte kann entweder Graustufen oder Farbe haben. Wenn die Verstärkungskarte farbig ist, gibt jeder Farbkanal in der Verstärkungskarte die Leuchtkraft dieses Farbkanals im entsprechenden Teil des primären Bildes an. Wenn die Verstärkungskarte Graustufen hat, gibt jedes Pixel der Verstärkungskarte die Leuchtkraft aller drei Farbkanäle in diesem Teil des primären Bildes an.

Die Gewinnkarte muss dieselben Proportionen wie das primäre Bild haben, aber nicht dieselben Pixelabmessungen. Wenn auf der Android-Plattform Ultra-HDR-Bilder erstellt werden, wird eine Gewinnkarte mit einer geringeren Breite und Höhe als das primäre Bild erstellt. Dadurch wird die Dateigröße deutlich reduziert, es werden aber trotzdem genügend Informationen für ein gutes Ergebnis codiert. Das bedeutet, dass jedes Pixel in der Verstärkungskarte die Leuchtdichteinformationen für mehrere Pixel im Hauptbild speichern kann.

Einfache Ultra HDR-Bearbeitungen

Wenn Sie die Android-APIs Bitmap verwenden, um grundlegende Transformationen an einem Ultra-HDR-Bild vorzunehmen, werden mit den Methoden die entsprechenden Änderungen an der Verstärkungskarte vorgenommen. Die folgenden Bitmap-Vorgänge werden unterstützt:

  • Drehen:Wenn Sie ein Ultra-HDR-Bild drehen, wird auch die Gewinnkarte gedreht.
  • Zuschneiden:Wenn Sie ein Ultra-HDR-Bild zuschneiden, wird die Gewinnkarte entsprechend zugeschnitten.
  • Skalieren:Wenn Sie ein Ultra-HDR-Bild skalieren, wird die Gewinnkarte so skaliert, dass sie die Hälfte der Breite und Höhe des größenangepassten primären Bilds hat.

In jedem Fall bleiben die Informationen zur Leuchtkraft erhalten.

Erweiterte Ultra HDR-Bearbeitungen

Wenn Sie ein Ultra-HDR-Bild umfangreicher bearbeiten, bleibt die Gewinnkarte unverändert. Das führt möglicherweise nicht zu den gewünschten Ergebnissen.

Zu den häufigsten Änderungen, die zu dieser Situation führen können, gehören:

  • Sticker oder Emojis hinzufügen:Der hinzugefügte Sticker hat dieselben Werte für Leuchtkraft und Farbsättigung wie der Bereich, in den er eingefügt wurde.
  • Überlagerung eines zweiten Bildes:Das neue Bild verwendet die Informationen zur Leuchtkraft und Farbbrillanz des Inhalts, der überlagert wird.
  • Filter hinzufügen:Die Informationen der alten Verstärkungskarte sind möglicherweise nicht für das geänderte Hauptbild geeignet.

In jedem Fall werden die alten Informationen zur Leuchtkraft und Farbsättigung beibehalten, sie sind jedoch möglicherweise nicht für das geänderte Bild geeignet.

Wenn die ursprüngliche Verstärkungskarte für das bearbeitete Bild geeignet ist, müssen Sie nichts weiter tun. Wenn Sie die Verstärkungskarte ändern möchten, gehen Sie so vor:

  1. Rufen Sie die aktuelle Verstärkungskarte des Bilds ab, indem Sie Bitmap.getGainmap() aufrufen, und speichern Sie sie im Cache.
  2. Ändern Sie das Hauptbild nach Bedarf.
  3. Nimm entsprechende Änderungen an der im Cache gespeicherten Gewinnkarte vor. Wenn Sie beispielsweise ein Emoji in das Hauptbild eingefügt haben, können Sie den entsprechenden Bereich der Gewinnkarte auf einen neutralen Wert wie Color.GRAY festlegen.

  4. Wende die geänderte Verstärkungskarte wieder auf das Bild an, indem du Bitmap.setGainmap() aufrufst.

Weitere Informationen

Weitere Informationen zu Ultra-HDR-Bildern finden Sie in den folgenden Ressourcen: