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.
„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 64% mniej danych graficznych.”
chyba 54% mnie danych…
ciekawe czy teraz ubuntu.pl zostanie zoptymalizowane 🙂
@dawidgarus
Poprawiłem
[quote post=”14639″]Nowe pliki zajmują w sumie 46% objętości starych[/quote]
Ładny wynik. Ja natomiast, przy rekompresji 13 plików png, zyskałem 11kB, tj. ok 12%.
[quote post=”14639″]Zwłaszcza mobilni, mający limity transferu, mogą być Tobie wdzięczni.[/quote]
Sądzę że nawet by tego nie zauważyli.
Pingback: Programy, których (być może) nie znacie. Cz. 8: Shutter :: Czytelnia Ubuntu