Format obrazu ultra HDR koduje informacje o jasności, dzięki czemu urządzenia mogą wyświetlać jaśniejsze obrazy o bardziej intensywnych kolorach. Gdy aplikacja edytuje obraz Ultra HDR, musisz zachować informacje o jasności. Jest to ważne nawet wtedy, gdy urządzenie użytkownika nie obsługuje wyświetlania obrazu w formacie Ultra HDR z pełną intensywnością. Użytkownik może udostępnić obraz komuś, kto ma urządzenie obsługujące Ultra HDR, lub może zapisać obraz i wyświetlić go ponownie na nowym urządzeniu po kilku latach.
Na szczęście większość metod edycji bitmap na Androidzie obsługuje format obrazu Ultra HDR. Jeśli chcesz wprowadzić podstawowe zmiany w obrazie, takie jak przycięcie lub obrócenie, możesz użyć standardowych metod Androida. Otrzymasz obraz ultra HDR z nowymi wymiarami lub orientacją.
Jeśli modyfikujesz zawartość obrazu, zadanie jest trudniejsze. W takich przypadkach standardowe metody edycji zachowują informacje o jasności starego obrazu, co może nie być pożądanym efektem. W takich przypadkach może być konieczna edycja lub usunięcie mapy wzmocnienia (która koduje informacje o jasności zdjęcia), aby uzyskać właściwy wynik.
Omówienie formatu ultra HDR
Format obrazu ultra HDR jest szczegółowo opisany w specyfikacji obrazu ultra HDR. Najważniejsze jest to, że obraz w formacie Ultra HDR zawiera zarówno obraz główny, jak i mapę wzmocnienia.
- Zdjęcie główne zawiera informacje o kolorze każdego piksela obrazu.
- Mapa wzmocnienia to standardowy obraz JPEG o tych samych proporcjach co obraz główny, ale niekoniecznie o tych samych wymiarach w pikselach. Każdy piksel mapy wzmocnienia określa luminancję odpowiadającej części obrazu głównego.
Mapa wzmocnienia może być w szarościach lub kolorze. Jeśli mapa wzmocnienia jest kolorowa, każdy kanał koloru na tej mapie określa luminancję tego kanału koloru w odpowiednim obszarze obrazu głównego. Jeśli mapa wzmocnienia jest w szarościach, każdy piksel mapy wzmocnienia określa luminancję wszystkich 3 kanałów kolorów w danej części obrazu głównego.
Mapa wzmocnienia musi mieć te same proporcje co obraz główny, ale nie musi mieć takich samych wymiarów w pikselach. Gdy platforma Android tworzy obrazy Ultra HDR, tworzy mapę wzmocnienia o mniejszej szerokości i wysokości niż obraz główny. Dzięki temu rozmiar pliku jest znacznie mniejszy, a informacje są nadal wystarczające do uzyskania dobrego wyniku. Oznacza to, że każdy piksel na mapie wzmocnienia może przechowywać informacje o luminescencji dla kilku pikseli na obrazie głównym.
podstawowe edycje w formacie Ultra HDR,
Jeśli do wprowadzania podstawowych przekształceń w obrazach ultra HDR używasz interfejsów API Androida Bitmap
, te metody wprowadzają odpowiednie zmiany w mapie wzmocnienia. Obsługiwane są te operacje Bitmap
:
- Obróć: jeśli obrócisz obraz w formacie Ultra HDR, metoda obróci też mapę wzmocnienia.
- Przycinanie: jeśli przytniesz obraz w Ultra HDR, metoda odpowiednio przytnie mapę wzmocnienia.
- Skalowanie: jeśli przeskalujesz obraz w ultra HDR, metoda przeskaluje mapę wzmocnienia, tak aby miała połowę szerokości i połowy wysokości pierwotnego obrazu.
W każdym przypadku informacje o jasności są zachowane.
Zaawansowane edycje zdjęć w trybie Ultra HDR
Jeśli wprowadzisz bardziej zaawansowane zmiany w zdjęciu w Ultra HDR, mapa wzmocnienia zostanie zachowana bez zmian, co może nie przynieść oczekiwanych rezultatów.
Oto najczęstsze zmiany, które mogą spowodować taką sytuację:
- Dodawanie naklejek lub emotikonów: dodana naklejka będzie miała te same wartości jasności i nasycenia kolorów co obszar, na którym została wklejona.
- Nakładanie drugiego obrazu: nowy obraz użyje informacji o jasności i nasyceniu kolorów z treści, na którą jest nakładany.
- Dodawanie filtrów: informacje starej mapy wzmocnienia mogą być nieodpowiednie dla zmodyfikowanego zdjęcia głównego.
W obu przypadkach stare informacje o luminozji i żywości kolorów są zachowywane, ale mogą nie być odpowiednie dla zmodyfikowanego obrazu.
Jeśli oryginalna mapa wzmocnienia jest odpowiednia dla edytowanego zdjęcia, nie musisz nic robić. Jeśli chcesz zmodyfikować mapę wzmocnienia, wykonaj te czynności:
- Pobierz bieżącą mapę wzmocnienia obrazu, wywołując funkcję
Bitmap.getGainmap()
i zapisując ją w pamięci podręcznej. - Zmodyfikuj obraz główny zgodnie z potrzebami.
Wprowadź odpowiednie zmiany w mapie zysków w pamięci podręcznej. Jeśli na przykład wkleisz emotikona na głównym obrazie, możesz ustawić odpowiadający mu fragment mapy wzmocnienia na wartość neutralną, np.
Color.GRAY
.Zastosuj zmodyfikowaną mapę wzmocnienia do obrazu, wywołując funkcję
Bitmap.setGainmap()
.
Dodatkowe materiały
Więcej informacji o obrazach w ultra HDR znajdziesz w tych materiałach: