kodowanie: APNG hero

i_want_to_be_a_hero__apng_animated__by_tamalesyatole-d5ht8eu

Wraz z pojawieniem się nowej wersji Xcode w wersji ósmej Apple wprowadził możliwość tworzenia tzw. stickerów do swojego flagowego komunikatora iMessage. W iMessage mamy wsparcie dla czterech formatów plików graficznych: PNG, APNG, GIF, JPEG.

O ile trzy z nich (PNG, GIF, JPEG) to formaty szeroko znane, o tyle APNG jest tu małym wyjątkiem i co ciekawe właśnie APNG i PNG są rekomendowane do tworzenia grafik dla stickerów.

Format APNG został stworzony w 2004 roku przez Stuarta Parmenter oraz Vladimira Vukicevica z fundacji Mozilli a w przeglądarkach zaczął był wspierany od 2007 roku (najpierw w Firefoxie 3). Obecnie APNG jest wspierane przez Firefox’a, SeaMonkey, Safari, Operę (od wersji 15) i Chrome’a (podobno już oficjalnie, a na pewno jako dodatek APNG do Chrome [http://littlesvr.ca/apng/] sekcja Plug-ins and Extensions). Pozostał na placu boju tylko Internet Explorer… na to już nic nie poradzimy 😉

Poniżej małe zestawienie właściwości poszczególnych formatów wspieranych przez iMessage:

format rekomendacja liczba kolorów wsparcie
dla przeźroczystości
wsparcie
dla animacji
PNG tak 16,777,216 8 bitów
APNG tak 16,777,216 8 bitów tak
GIF 256 1 kolor tak
JPEG 16,777,216

Jak widać APNG wspiera także animowane obrazki, podobnie jak GIF. Jest jedno ale. Znaczącą różnicą między GIF’em a APNG jest liczba kolorów, które mogą zawierać obrazki i jest to paleta z tylko 256 kolorami (8 bitów) w przypadku GIF’a, a w przypadku APNG (PNG) mamy do dyspozycji cały 24-bitowy zakres. Podobną przepaść mamy w przypadku kanału z przeźroczystością, gdzie dla GIF’a mamy stworzyć maskę z jednego koloru, a dla APNG (podobnoie jak dla PNG) jest to maska 8 bitowa czyli 256 kolorów (w skali szarości).

Różnicę w wyświetlaniu przeźroczystości można zobaczyć poniżej (GIF po lewej, APNG po prawej):

spinfox spinfox

Co ciekawe APNG ma wsteczną kompatybilność dla przeglądarek, które nie obsługują APNG. W takim wypadku APNG będzie zwykłym PNG i będzie wyświetlał pierwszą klatkę z animacji.

Przy okazji warto wspomnieć o darmowymh narzędziu do tworzenia plików APNG jakim jest APNG Assembler. Dostępny jest na platformę Windows, Mac i linux (starsza wersja z 2014) i pliki do pobrania znajdują się tutaj: [http://apngasm.sourceforge.net]. Ciekawostką jest, że wersja na Mac (być może w wersji na Windows też tak jest) APNG Assembler posiada wbudowany disassembler GIF’ów, więc można od razu skonwertować GIFa na osobne klatki w formacie PNG.

Dostępny też jest konwerter GIF na APNG jako osobna aplikacja [http://gif2apng.sourceforge.net] ale jako wersje uruchamiane z terminala (tylko na Windows posiada GUI), APNG na GIF [http://apng2gif.sourceforge.net] oraz APNG Optimizer [https://sourceforge.net/projects/apng/files/APNG_Optimizer/].

No i tym razem to by było wszystko.

Przydatne linki:

1. [http://littlesvr.ca/apng/] – trochę historii, specyfikacji i narzędzi do APNG

2. [https://people-mozilla.org/\~dolske/apng/demo.html] – prezentacja możliwości APNG

PS. Grafika do artykułu została znaleziona na stronie Deviant art [http://tamalesyatole.deviantart.com/art/I-want-to-be-a-Hero-APNG-Animated-332248278] a jej autorem jest tamaleyyatole z Meksyku 🙂