Il formato immagine Ultra HDR codifica le informazioni sulla luminosità che consentono ai dispositivi di visualizzare immagini più luminose con colori più intensi. Quando la tua app modifica un'immagine Ultra HDR, devi assicurarti di preservare le informazioni sulla luminosità. Questo è importante anche se il dispositivo dell'utente non supporta la visualizzazione completa di un'immagine Ultra HDR l'intensità del segnale. Dopotutto, l'utente potrebbe condividere la propria immagine con qualcuno che ha un dispositivo che supporta Ultra HDR o potrebbe salvarla e guardarla di nuovo su un nuovo dispositivo anni dopo.
La buona notizia è che la maggior parte dei metodi Android per la modifica delle bitmap supporta il formato delle immagini Ultra HDR. Se apporti modifiche di base a un'immagine, ad esempio ritagliandola o ruotandola, i metodi standard di Android sono sufficienti: otterrai un'immagine ultra HDR con le nuove dimensioni o l'orientamento.
Il compito è più complicato se modifichi i contenuti dell'immagine. In quelle casi, i metodi di editing standard conservano le informazioni sulla luminosità del vecchia immagine, che potrebbe non essere quella desiderata. In questi casi, potresti dover modificare o rimuovere la mappa del guadagno (che codifica le informazioni sulla luminosità dell'immagine) per ottenere il risultato corretto.
Panoramica del formato Ultra HDR
Il formato dell'immagine Ultra HDR è descritto dettagliatamente nella sezione Immagine Ultra HDR la specifica del prodotto. L'aspetto più importante da capire è che un'immagine Ultra HDR contiene sia un'immagine principale sia una mappa di guadagno.
- L'immagine principale contiene le informazioni sul colore di ogni pixel dell'immagine.
- La mappa di guadagno è un'immagine JPEG standard con le stesse proporzioni dell'immagine primaria, anche se non necessariamente le stesse dimensioni in pixel. Ogni pixel della mappa del guadagno specifica la luminanza della parte corrispondente dell'immagine principale.
La mappa del guadagno può essere in scala di grigi o a colori. Se la mappa del guadagno è a colori, ogni il canale del colore sulla mappa di guadagno specifica la luminanza di quel canale su nella parte corrispondente dell'immagine principale. Se la mappa del guadagno è in scala di grigi, ogni pixel della mappa del guadagno specifica la luminanza di tutti e tre i canali di colore su la parte dell'immagine principale.
La mappa di guadagno deve avere le stesse proporzioni dell'immagine principale, ma presenta non devono necessariamente avere le stesse dimensioni in pixel. Infatti, quando la piattaforma Android crea immagini Ultra HDR, crea una mappa di guadagno con larghezza e altezza inferiori all'immagine principale. In questo modo, le dimensioni del file si riducono notevolmente, ma vengono comunque codificate informazioni sufficienti per un buon risultato. Ciò significa che ogni pixel nella mappa del guadagno potrebbe memorizzare le informazioni di luminanza per diversi pixel nell'immagine principale.
Modifiche di base in Ultra HDR
Se utilizzi le API Android Bitmap
per creare
trasformazioni di base in un'immagine Ultra HDR, i metodi rendono
modifiche alla mappa del guadagno. Sono supportate le seguenti operazioni di Bitmap
:
- Ruota: se ruoti un'immagine Ultra HDR, il metodo ruota il guadagno. mappa.
- Ritaglia: se ritagli un'immagine Ultra HDR, il metodo consente di ritagliare la mappa di guadagno. in modo appropriato.
- Scala: se ridimensioni un'immagine Ultra HDR, il metodo ridimensiona la mappa di guadagno in modo che abbia metà della larghezza e metà dell'altezza dell'immagine principale ridimensionata.
In ogni caso, le informazioni sulla luminosità vengono conservate.
Modifiche avanzate in Ultra HDR
Se apporti modifiche più elaborate a un'immagine Ultra HDR, la mappa del guadagno viene conservata invariata, il che potrebbe non darti i risultati che desideri.
Le modifiche comuni che potrebbero causare questa situazione includono:
- Aggiunta di adesivi o emoji: l'adesivo aggiunto avrà gli stessi valori di luminosità e vivacità del colore dell'area in cui è stato incollato.
- Sovrapposizione di una seconda immagine: la nuova immagine utilizzerà le informazioni sulla luminosità e sulla vivacità dei colori dei contenuti su cui è sovrapposta.
- Aggiunta di filtri: le informazioni della vecchia mappa del guadagno potrebbero non essere appropriate. per l'immagine principale modificata.
In ogni caso, vengono mantenute le vecchie informazioni su luminosità e vividezza del colore, ma potrebbe non essere appropriato per l'immagine modificata.
Se la mappa di guadagno originale è appropriata per l'immagine modificata, non è necessario fare qualsiasi cosa. Se vuoi modificare la mappa del guadagno, il flusso di lavoro abituale è:
- Recupero la mappa del guadagno corrente dell'immagine chiamando
Bitmap.getGainmap()
e memorizzala nella cache. - Modifica l'immagine principale come preferisci.
Apporta le modifiche corrispondenti alla mappa dei guadagni memorizzati nella cache. Ad esempio, se hai incollato un'emoji sull'immagine principale, puoi impostare il corrispondente della mappa del guadagno su un valore neutro, come
Color.GRAY
.Applica nuovamente la mappa del guadagno modificata all'immagine chiamando
Bitmap.setGainmap()
.
Risorse aggiuntive
Per scoprire di più sulle immagini Ultra HDR, consulta le seguenti risorse aggiuntive: