Programy, których (być może) nie znacie. Cz. 7: AdvanceComp 5


Rosyjscy naukowcy wynaleźli dysk o nieskończonej pojemności.
Trafi do sprzedaży jak tylko skończy się formatować.

Stare przysłowie ludowe

Za niewiele ponad 300 złotych można kupić dysk twardy o pojemności dwóch terabajtów. Można dołożyć jeszcze stówkę i kupić dysk, który nie odmówi posłuszeństwa po roku pracy. Z tego też powodu dzisiejszy program może wydać się nieco komiczny. Z drugiej strony być może przyda się osobom zajmującym się tworzenie stron www. Dlaczego? Otóż dzisiejszy program, advpng, wchodzący w skład pakietu AdvanceComp, służy do optymalizacji rozmiaru plików .png. Zmniejszenie rozmiaru statycznych grafik na stronie bez utraty jakości spodoba się na pewno każdemu webdesignerowi.

AdvanceComp

AdvanceComp jest pakietem, na który składają się cztery programy:

  • advdef i advmng – służące do rekompresowania plików .mng
  • advzip – do rekompresowania plików .gz
  • advpng – do rekompresowania plików .png

Co jest takiego w tym całym rekompresowaniu, że postanowiłem opisać ten program? Otóż wszystkie wymienione formaty plików używają algorytmów zip/gnuzip do kompresji. Pakiet AdvanceComp wykorzystuje do tego algorytm 7-zip, który w odniesieniu do plików binarnych charakteryzuje się średnio 5-15% lepszą kompresją danych.

Format .mng jest praktycznie nieznany, rekompresowanie archiwów .gz to przerost formy nad treścią. Ale obcięcie kilku(nastu) procent z plików .png? To może przekładać się na spore zmniejszenie danych jakie trzeba przesłać przez sieć. Jest to oszczędność dla hostingu (kilka kilobajtów razy liczba pobrań dziennie liczona w dziesiątkach lub setkach tysięcy) oraz dla użytkowników. Zwłaszcza mobilni, mający limity transferu, mogą być Tobie wdzięczni.

Format .png jest bardzo popularnym formatem do tworzenia statycznych grafik na stronie. Technicznie rzecz biorąc, wiele takich statycznych elementów można zastąpić grafiką wektorową lub deseniami w CSS3. Jednakże te technologie nie są wspierane przez wszystkie przeglądarki. Za to podmiana algorytmu kompresji jest kompatybilna wstecz. Przeglądarki obsługujące format .png będą obsługiwać pliki poddane rekompresii. Dodatkową zaletą jest, że chociaż sam proces jest czasochłonny, to odczytywanie takich plików przebiega tak samo szybko jak w „zwykłych” plikach .png.

Przyjrzyjmy się wynikowi działania programy advpng. W celach testowych pobrałem wszystkie statyczne elementy z strony głównej czytelni.

dwimenor@20:54:12:~$ advpng -z -4 *.png
       30137         459        1% comment.png
        1798        1798      100% content_bottom_bg.png (Bigger 1936)
         261         261      100% content_shortinfo_bg.png (Bigger 264)
         259         258       99% content_title_bg.png
        1153        1153      100% content_top_bg.png (Bigger 1297)
         495         495      100% czytelnia_bg.png (Bigger 1218)
         778         665       85% icon_f.png
         438         320       73% icon_l.png
         783         673       85% icon_s.png
        2030        1959       96% icon_ubuntu.png
       17644       17644      100% logo_2.png (Bigger 17685)
         218         135       61% menu_selected_c.png
         514         460       89% nav_bottom.png
         334         334      100% page_bg.png (Bigger 372)
         249         148       59% page_center.png
       57091       26762       46%

Jak należy to czytać? Najpierw samo polecenie:
advpng -z -4 *.png

  • advpng polecenie programu
  • -z opcja odpowiedzialna za rekompresję
  • -4 stopień kompresji. 0 to najniższy (a właściwie brak), 4 to najlepszy
  • *.png które pliki mają zostać poddane działaniu programu. W tym wypadku wszystkie pliki o rozszerzeniu .png znajdujące się w danym katalogu.

A oto jak czytać wyjście:

  • Pierwsza kolumna – oryginalny rozmiar pliku w bajtach
  • Druga kolumna – rozmiar pliku po zmianach. W bajtach
  • Trzecia kolumna – Jaką część oryginalnego pliku stanowi nowy plik
  • Czwarta kolumna – nazwa pliku
  • Zapis typu „(Bigger 1218)” oznacza, ze plik wynikowy jest większy niż oryginalny

Ostatni wiersz to podsumowanie. Możemy z niego wyczytać, że program zmniejszył sumaryczną objętość plików graficznych z 57091 bajtów do 26762 bajtów. Nowe pliki zajmują w sumie 46% objętości starych, tak więc przy wchodzeniu na stronę Czytelni potrzeba by było ściągnąć o 54% mniej danych graficznych. Oczywiście największy w tym udział ma plik comment.png, który zajmuje ponad połowę wagi wszystkich plików. Na 15 plików poddanych procesowi 9 zostało zmniejszonych. Sami oceńcie, czy efekt jest wart poniesionego wysiłku.

Jedna uwaga – jeżeli w wyniku działania programu plik wynikowy będzie mniejszy od oryginału, to oryginał zostanie nadpisany. Jeżeli plik będzie większy, to wersja oryginalna nie zostanie nadpisana.

Instalacja

AdvanceComp jest w najnowszej wersji w repozytoriach Ubuntu. Instalacja sprowadza się do wykonania prostej czynności instalacji paczki advancecomp

sudo apt-get install advancecomp

AdvanceComp jest rozpowszechniany na licencji GNU/GPLv2. Strona domowa.


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

5 komentarzy do “Programy, których (być może) nie znacie. Cz. 7: AdvanceComp