Edytuj zdjęcia ultra HDR

Format obrazu ultra HDR koduje informacje o jasności, które pozwalają urządzeniom wyświetlać jaśniejsze obrazy o bardziej intensywnych kolorach. Gdy aplikacja edytuje obraz Ultra HDR, musisz zadbać o zachowanie informacji 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 osobie, która ma urządzenie obsługujące ultra HDR, lub zapisać obraz i wyświetlić go ponownie na nowym urządzeniu za kilka lat.

Dobra wiadomość jest taka, że większość metod edycji map bitowych na Androidzie obsługuje format obrazu Ultra HDR. Jeśli wprowadzasz podstawowe zmiany w obrazie, np. przycinasz lub obracasz go, wystarczą standardowe metody Androida – uzyskasz obraz w ultra HDR o nowych wymiarach lub orientacji.

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żądane. W takich przypadkach może być konieczne edytowanie lub usunięcie mapy wzmocnienia (która koduje informacje o jasności obrazu), aby uzyskać prawidłowy 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 ultra HDR zawiera zarówno obraz podstawowy, jak i mapę wzmocnienia.

  • Zdjęcie główne zawiera informacje o kolorze każdego piksela.
  • 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ę odpowiedniej części obrazu podstawowego.

Mapa wzmocnienia może być w odcieniach szarości lub kolorowa. Jeśli mapa wzmocnienia jest kolorowa, każdy kanał koloru na mapie wzmocnienia określa luminancję tego kanału koloru w odpowiedniej części obrazu głównego. Jeśli mapa wzmocnienia jest w odcieniach szarości, każdy piksel mapy wzmocnienia określa luminancję wszystkich 3 kanałów kolorów w tej części obrazu głównego.

Mapa wzmocnienia musi mieć takie same proporcje jak obraz główny, ale nie musi mieć takich samych wymiarów w pikselach. Gdy platforma Android tworzy obrazy Ultra HDR, generuje mapę wzmocnienia o mniejszej szerokości i wysokości niż obraz główny. Dzięki temu rozmiar pliku jest znacznie mniejszy, ale nadal zawiera wystarczająco dużo informacji, aby uzyskać dobry efekt. Oznacza to, że każdy piksel na mapie wzmocnienia może przechowywać informacje o luminancji kilku pikseli na obrazie głównym.

Podstawowe zmiany w ultra HDR

Jeśli do wykonania podstawowych przekształceń obrazu ultra HDR używasz interfejsów API Androida Bitmap, metody wprowadzają odpowiednie zmiany na mapie wzmocnienia. Obsługiwane są te Bitmap operacje:

  • Obrót: jeśli obrócisz obraz ultra HDR, metoda obróci też mapę wzmocnienia.
  • Przycinanie: jeśli przytniesz obraz w formacie ultra HDR, metoda odpowiednio przytnie mapę wzmocnienia.
  • Skalowanie: jeśli przeskalujesz obraz ultra HDR, metoda przeskaluje mapę wzmocnienia, tak aby miała połowę szerokości i połowę wysokości przeskalowanego obrazu głównego.

W każdym przypadku informacje o luminancji są zachowywane.

Zaawansowane zmiany w Ultra HDR

Jeśli wprowadzisz bardziej złożone zmiany w obrazie w formacie Ultra HDR, mapa wzmocnienia pozostanie bez zmian, co może nie dać oczekiwanych rezultatów.

Oto typowe zmiany, które mogą spowodować taką sytuację:

  • Dodawanie naklejek lub emotikonów: dodana naklejka będzie miała takie same wartości jasności i nasycenia kolorów jak obszar, na którym została umieszczona.
  • Nakładanie drugiego obrazu: nowy obraz wykorzystuje informacje o jasności i intensywności kolorów treści, na którą jest nakładany.
  • Dodawanie filtrów: informacje ze starej mapy wzmocnienia mogą nie być odpowiednie w przypadku zmodyfikowanego obrazu głównego.

W każdym przypadku zachowywane są stare informacje o jasności i intensywności kolorów, ale mogą one nie być odpowiednie dla zmodyfikowanego obrazu.

Jeśli oryginalna mapa wzmocnienia jest odpowiednia dla edytowanego obrazu, nie musisz nic robić. Jeśli chcesz zmodyfikować mapę wzmocnienia, zwykle wykonujesz te czynności:

  1. Pobierz bieżącą mapę wzmocnienia obrazu, wywołując Bitmap.getGainmap(), i zapisz ją w pamięci podręcznej.
  2. Zmodyfikuj obraz główny zgodnie z potrzebami.
  3. Wprowadź odpowiednie zmiany w mapie wzmocnienia w pamięci podręcznej. Jeśli na przykład wkleisz emoji na obraz podstawowy, możesz ustawić odpowiednią część mapy wzmocnienia na wartość neutralną, np. Color.GRAY.

  4. Zastosuj zmodyfikowaną mapę wzmocnienia z powrotem do obrazu, wywołując Bitmap.setGainmap().

Dodatkowe materiały

Więcej informacji o zdjęciach ultra HDR znajdziesz w tych materiałach: