Jakim cudem obrazek PNG waży wiecej niż GIF?

0

Witam, siedziałem i wycinałem sobie w GIMPie sprity do mojej gry. Zapisuje je w jako gify żeby mniej wazyly i szybciej sie ładowały. No ale postanowiłem zrobic taki eksperyment i ten sam obrazek zapisałem jako png i gif. Rezultat:

  • PNG - 4.8kB
  • GIF - 5.5kB

Ja sie pytam jakim cudem? GIF ma znacznie mniejsza palete kolorow no i nie musi zapisywac informacji o przezroczytosci czemu ma wiec pol kilobajta wiecej?

0

Widocznie PNG wykorzystuje lepszy algorytm kompresji (tzn. widocznie DEFLATE jest lepsze niż LZW). Tutaj jakieś minimalne porównanie: http://warp.povusers.org/grrr/PNGvsGIF/ inne strony też ogólnie piszą, że kompresja w PNG jest lepsza w większości przypadków (w tym Wikipedia).

0

Dotychczas mnie uczono ze to PNG jest ociezale (przez co m.in. nie jest wykorzystywane na stronach www bo zwiekszałoby dlugosc ładowania i obciazenie serwera) a tutaj takie cos wychodzi.. Czyli myslicie ze lepiej wyjde na uzywaniu formatu png?

0

Ktoś Ci głupot naopowiadał i tyle. ;-) (Być może chodziło raczej o JPEG kontra PNG, ale to inne zastosowania)

0

Hm, okej to jakbym juz zaczal uzywac png to jakiego modelu powinienem uzyc podczas pracy na BufferedImage (w Javie)? Uzywam najbardziej chyba popularnego modelu TYPE_INT_ARGB, ktory informacje o kolorze przechowuje w postaci 4 liczb z przedziału od 0 do 255 (po kolei - wartosci czerwonego, zielone, niebieskiego i alphy). Dla GIFu wszystko jasne bo przechowuje tylko 256 kolorow, ale co z PNG ktory ma ich znacznie wiecej? W jaki sposob mam tam okreslac kolory (patrzylem w google ale nic nie moge znalezc, moze zle szukam)?

1

Primo:
GIF nie nadaje się do obrazków z dużą ilością kolorów. Przy czym redukcja z miliona kolorów do palety 256-kolorów to nie zawsze dobry sposób na radzenie sobie.

Secundo:
Algorytm LZW używany w GIF jest generalnie gorszy od algorytmu Deflate używanego w PNG. Dodatkowo w PNG jest dostępnych kilka rodzajów filtrów poprawiających kompresję (ale nie zmieniającego obrazu), a w GIF nie ma żadnych (surowe dane lecą od razu do LZW). Zwykle PNG powinien być lepszy tam, gdzie rozmiar nagłówka jest pomijalny, ale nie zawsze.

Tertio:
W PNG można przechowywać sporą ilość metadanych i bardzo możliwe, że różnego rodzaju Photoshopy i inne kombajny wrzucają spore ilości metadanych do PNG pompując jego objętość. Trzeba na to uważać, zwłaszcza przy porównywaniu rozmiarów.

2

ja myślę, że różnica tych kilkuset bajtów na obrazku nie jest zbyt znacząca ;-)

0

Jeszcze przerzuć swój png przez http://tinypng.org/ to będzie jeszcze mniejszy (ten kompresor daje mi zazwyczaj najlepsze rezultaty)

1 użytkowników online, w tym zalogowanych: 0, gości: 1