Das Ultra-HDR-Bildformat codiert Helligkeitsinformationen, mit denen Geräte hellere Bilder mit intensiveren Farben anzeigen können. Wenn Ihre App ein Ultra HDR-Bild bearbeitet, sollten Sie darauf achten, dass die Helligkeitsinformationen erhalten bleiben. Das ist auch dann wichtig, wenn das Gerät des Nutzers kein Ultra-HDR-Bild mit voller Intensität anzeigen kann. Schließlich kann der Nutzer sein Bild mit jemandem teilen, der ein Gerät mit Ultra HDR hat, oder das Bild speichern und es 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 grundlegende Änderungen an einem Bild vornehmen, z. B. es zuschneiden oder drehen, reichen die Standardmethoden von Android aus. Sie erhalten dann ein Ultra-HDR-Bild mit den neuen Abmessungen oder der neuen Ausrichtung.
Das ist schwieriger, wenn Sie den Inhalt des Bildes ändern. In diesen Fällen bleiben bei den Standardbearbeitungsmethoden die Helligkeitsinformationen des alten Bildes erhalten, was möglicherweise nicht gewünscht ist. In diesen Fällen müssen Sie möglicherweise die Gain-Map (in der die Helligkeitsinformationen des Bildes codiert sind) bearbeiten oder entfernen, um das gewünschte Ergebnis zu erzielen.
Ultra HDR-Format – Übersicht
Das Ultra HDR-Bildformat wird in der Ultra HDR-Bildspezifikation ausführlich beschrieben. Das Wichtigste ist, dass ein Ultra-HDR-Bild sowohl ein primäres Bild als auch eine Verstärkungskarte enthält.
- Das Hauptbild enthält die Farbinformationen für jedes Pixel des Bildes.
- Die Gain-Map ist ein Standard-JPEG-Bild mit denselben Proportionen wie das primäre Bild, aber nicht unbedingt mit denselben Pixelabmessungen. Jedes Pixel der Gain-Map gibt die Luminanz des entsprechenden Teils des primären Bildes an.
Die Verstärkungskarte kann entweder in Graustufen oder in Farbe dargestellt werden. Wenn die Verstärkungskarte farbig ist, gibt jeder Farbkanal auf der Verstärkungskarte die Luminanz dieses Farbkanals im entsprechenden Teil des primären Bildes an. Wenn die Gain-Map in Graustufen vorliegt, gibt jedes Pixel der Gain-Map die Luminanz aller drei Farbkanäle in diesem Teil des primären Bildes an.
Die Gain-Map muss dieselben Proportionen wie das primäre Bild haben, aber nicht dieselben Pixelabmessungen. Wenn die Android-Plattform Ultra HDR-Bilder erstellt, wird eine Gain-Map mit einer geringeren Breite und Höhe als das primäre Bild erstellt. Dadurch wird die Dateigröße deutlich verringert, aber es werden trotzdem genügend Informationen für ein gutes Ergebnis codiert. Das bedeutet, dass in jedem Pixel der Verstärkungskarte die Luminanzinformationen für mehrere Pixel im primären Bild gespeichert sein können.
Einfache Ultra HDR-Bearbeitungen
Wenn Sie die Android-APIs Bitmap
verwenden, um grundlegende Transformationen an einem Ultra HDR-Bild vorzunehmen, werden die entsprechenden Änderungen an der Gain Map vorgenommen. Die folgenden Bitmap
-Vorgänge werden unterstützt:
- Drehen:Wenn Sie ein Ultra HDR-Bild drehen, wird auch die Gain-Map gedreht.
- Zuschneiden:Wenn Sie ein Ultra-HDR-Bild zuschneiden, wird die Gain-Map entsprechend zugeschnitten.
- Skalieren:Wenn Sie ein Ultra HDR-Bild skalieren, wird die Gain-Map so skaliert, dass sie die halbe Breite und die halbe Höhe des in der Größe angepassten primären Bilds hat.
In beiden Fällen bleiben die Helligkeitsinformationen erhalten.
Erweiterte Ultra HDR-Bearbeitungen
Wenn Sie ein Ultra HDR-Bild aufwendiger bearbeiten, bleibt die Gain Map unverändert. Das kann dazu führen, dass Sie nicht die gewünschten Ergebnisse erhalten.
Häufige Änderungen, die zu dieser Situation führen können:
- Sticker oder Emojis hinzufügen:Der hinzugefügte Sticker hat dieselben Helligkeits- und Farbintensitätswerte wie der Bereich, in den er eingefügt wurde.
- Ein zweites Bild überlagern:Das neue Bild würde die Informationen zur Helligkeit und Farbintensität der Inhalte verwenden, die es überlagert.
- Filter hinzufügen:Die Informationen der alten Gain-Map sind möglicherweise nicht für das geänderte primäre Bild geeignet.
In jedem Fall bleiben die alten Informationen zu Helligkeit und Farbbrillanz erhalten, sind aber möglicherweise nicht für das geänderte Bild geeignet.
Wenn die ursprüngliche Gain-Map für das bearbeitete Bild geeignet ist, müssen Sie nichts weiter tun. Wenn Sie die Gain-Map bearbeiten möchten, gehen Sie normalerweise so vor:
- Rufen Sie die aktuelle Gain-Map des Bildes ab, indem Sie
Bitmap.getGainmap()
aufrufen, und speichern Sie sie im Cache. - Ändern Sie das primäre Bild nach Bedarf.
Nehmen Sie entsprechende Änderungen an der zwischengespeicherten Verstärkungskarte vor. Wenn Sie beispielsweise ein Emoji auf das primäre Bild eingefügt haben, können Sie den entsprechenden Teil der Gain-Map auf einen neutralen Wert wie
Color.GRAY
festlegen.Wenden Sie die geänderte Gain-Map wieder auf das Bild an, indem Sie
Bitmap.setGainmap()
aufrufen.
Zusätzliche Ressourcen
Weitere Informationen zu Ultra HDR-Bildern finden Sie in den folgenden zusätzlichen Ressourcen: