Oprogramowanie

ScriptPNG, błyskawiczna optymalizacja plików PNG

optymalizacja

Maksymalne zmniejszenie rozmiaru plików graficznych to jeden z kluczowych elementów w tworzeniu i optymalizacji stron internetowych. Istnieje cała gama narzędzi optymalizujących, stąd dobór odpowiedniego programu nie jest łatwym zadaniem. Niniejszy poradnik otwiera serię artykułów dotyczących optymalizacji grafiki. W tym poradniku dowiesz się, w jaki sposób skutecznie optymalizować pliki w formacie PNG przy pomocy darmowego narzędzia ScriptPNG.

Co to są pliki w formacie PNG?

Pliki w formacie PNG to usystematyzowane zbiory grafik rastrowych, których nazwa jest skrótem od angielskiego Portable Network Graphics. Ich główną cechą jest brak utraty jakości grafik przy kompresji danych, co sprawia, że są one doskonałą alternatywą dla plików JPEG. Dzięki temu, że pliki PNG mogą zawierać przezroczyste tła, idealnie nadają się do publikacji w Internecie.

Warto zaznaczyć, że format graficzny PNG został opracowany w 1995 roku przez grupę inżynierów i naukowców, którzy wychodzili z założenia, że powinien on być darmowy i prosty w obsłudze. Pierwsze wersje formatu PNG nie zdobyły dużej popularności ze względu na brak wsparcia przez przeglądarki internetowe. Dopiero po wielu latach, kiedy standard stał się powszechnie akceptowany, pliki PNG zaczęły być wykorzystywane coraz częściej przez profesjonalistów, ale również zwykłych użytkowników. Obecnie pliki PNG są jednym z najczęściej wykorzystywanych formatów w Internecie, obok JPEG i GIF.

Jedną z najważniejszych zalet plików PNG jest fakt, że są one w pełni skalowalne, co oznacza, że można je powiększyć, jak też pomniejszyć bez utraty jakości grafik. Innym atutem PNG jest jego zdolność do wyświetlania przezroczystego tła, co znacznie ułatwia pracę ze zdjęciami oraz grafikami w różnych projektach. Ponadto pliki PNG oferują zaawansowaną jakość odcienia szarości oraz sześć poziomów przezroczystości, dzięki czemu w bardziej skomplikowanych projektach graficznych można uzyskać fotorealistyczny efekt.

Pliki w formacie PNG to jeden z wiodących formatów w Internecie, dzięki swoim zaletom, takim jak skalowalność, jakość grafiki, tła przezroczyste czy też przyjazność dla użytkownika. Z pewnością znajdą one zastosowanie w projektowaniu stron internetowych, publikowaniu zdjęć w sieci, jak również przy tworzeniu bardziej skomplikowanych projektów graficznych.

Kiedy warto używać plików PNG?

Pliki PNG, to format obrazu, który oferuje wiele zalet. Przede wszystkim, pliki PNG są idealne do przechowywania obrazów z przezroczystymi tłem. Dzięki temu są one często wykorzystywane w projektowaniu stron internetowych, gdzie grafiki z przezroczystym tłem ułatwiają ustawienie obiektów na stronie. Pliki PNG są także wybierane ze względu na ich jakość, która jest wyższa niż w przypadku plików JPEG. A to dzięki zastosowaniu bezstratnej kompresji, która pozwala zachować pierwotną jakość obrazu bez utraty szczegółów i jakości kolorów. Ponadto, pliki PNG są często wykorzystywane w projektowaniu elementów graficznych logotypów i ikon, ponieważ posiadają zdolność do zachowania szczegółów obrazów z tekstem i krystalicznie czystych linii. Wreszcie, pliki PNG są formatem używanym w edycji zdjęć i grafiki wektorowej, ponieważ umożliwiają wielowarstwowość oraz spójność kolorów. Podsumowując, pliki PNG są doskonałym wyborem, gdy potrzebujemy wysokiej jakości obrazów o zachowanym przezroczystym tle, szczegółach linii i tekstu, minimalnej utracie jakości oraz spójności kolorów.

A kiedy nie warto ich używać? Generalnie rozmiary plików PNG będą większe niż w popularniejszym formacie JPG. Wyjątek stanowi sytuacja, gdy plik PNG został zapisany w 256 palecie kolorów. Jeżeli zależy nam na jak najmniejszym rozmiarze pliku, format JPG może okazać się lepszym wyborem.

Co to jest ScriptPNG?

ScriptPNG jest narzędziem zawierającym serię instrukcji, których celem jest maksymalne zmniejszenie rozmiaru plików graficznych. Program specjalizuje się w optymalizacji plików PNG (8-bit/24-bit), dodatkowo pełni rolę konwertera. Posiada pełne wsparcie dla obrazków w formatach BMP, GIF, TGA, PCX, TIF, TIFF, PNM, PBM, PGM (bezpośrednia konwersja wraz z optymalizacją do PNG). W procesie optymalizacji wykorzystuje kilka zewnętrznych narzędzi jak pngout, optipng, pngnq, pngoptimizer, deflopt (wszystkie wymienione narzędzia dołączone są do skryptu optymalizacyjnego).

ScriptPNG – instrukcja optymalizacji

Pobieramy ScriptPNG, archiwum rozpakowujemy dowolnym kompresorem plików. Aby zoptymalizować grafikę, przeciągamy ją na plik wykonywalny ScriptPNG. Otworzy się okno programu, w którym wybieramy metodę kompresji.

ScriptPNG, okno główne

Program oferuje cztery metody kompresji:

  1. Fast Optimization – szybka optymalizacja. Dokonywane są podstawowe operacje, jak usuwanie metadanych czy redukcja zbędnych palet.
  2. Complete Optimization – optymalizacja dokładna jest odrobinę wolniejsza. Zastosowano w niej podobne operacje jak przy szybkiej optymalizacji, mimo to dzięki zwiększeniu ilości prób i użyciu dodatkowych metod optymalizacyjnych uzyskuje się większy stopień kompresji.
  3. Convert to PNG8 – optymalizacja wraz z redukcją palety do 8 bitów (256 kolorów).
  4. XtremCompression – ekstremalna optymalizacja z możliwością określenia liczby przebiegów dla etapu wyboru tablic Huffman’a. Najlepsza metoda spośród wszystkich, ale pochłania najwięcej czasu.

Wpisujemy odpowiednią opcję 1, 2, 3 lub 4 i potwierdzamy wybór klawiszem ENTER. Rozpocznie się proces optymalizacji. W przypadku wyboru XtremCompression po ukończeniu pierwszej fazy program poprosi o podanie liczby przebiegów, wpisujemy liczbę np. 50 i potwierdzamy operację klawiszem ENTER.

ScriptPNG, ilość przebiegów

Rozpocznie się optymalizacja z wykorzystaniem losowo generowanych tablic Huffman’a. Postęp kompresji można na żywo obserwować w oknie programu.

Koniec optymalizacji

Po ukończeniu ostatniego etapu otrzymamy informację o pierwotnym rozmiarze pliku (IN) i pliku wynikowym (OUT) oraz czasie rozpoczęcia i zakończenia procesu optymalizacji. Plik źródłowy jest nadpisywany plikiem wynikowym, dla bezpieczeństwa optymalizację należy wykonywać na kopii pliku.

ScriptPNG w praktyce – wyniki testów

W ramach sprawdzenia efektywności programu przeprowadziłem szczegółowe testy. Wykorzystałem 5 grafik w formacie PNG o głębi kolorów 24-bit, różnej rozdzielczości i złożoności.

Przycisk  Klipart  Gradient  Zdjęcie  Zdjęcie

  • 1-przycisk.png – przycisk z przeźroczystym tłem.
  • 2-klipart.png – standardowy klipart z białym tłem.
  • 3-gradient.png – grafika wektorowa z przejściem tonalnym, tło białe.
  • 4-zdjecie.png – zdjęcie z dużą liczbą detali na białym tle.
  • 5-zdjecie.png – standardowa fotografia, konwertowana z formatu stratnego JPG.

W poniższej tabeli przedstawiam wyniki testów.

Zestawienie wyników optymalizacji PNG

W przypadku kompresji PNG 24-bit widać wyraźnie przewagę XtremCompression nad pozostałymi metodami. Przy zdjęciach wysokiej rozdzielczości oraz grafikach z przejściami tonalnymi czas kompresji się wydłuża.

Pierwsza metoda – Fast Optimization jest bardzo szybka, pozwala osiągnąć przyzwoite wartości współczynnika kompresji, mimo to do błyskawicznej optymalizacji lepszym wyborem będzie druga opcja – Complete Optimization, gdzie czas jest nieznacznie dłuższy, lecz efekty o wiele lepsze.

Przy metodzie XtremCompression dużą rolę odgrywa zdefiniowana liczba przebiegów. Czym większą wartość ustawimy, tym proces optymalizacji będzie dłuższy, jednocześnie można spodziewać się, że rozmiar pliku wynikowego będzie mniejszy. Aby zachować kompromis pomiędzy czasem a stopniem kompresji najrozsądniej ustawić wartości na poziomie 20-50 przebiegów.

Przy wyborze opcji Convert to PNG8 należy mieć świadomość, iż dojdzie do degradacji jakości. Dzięki tej metodzie kompresji można zmniejszyć rozmiar pliku nawet o 60-70%. Metodę można uwzględnić, jeżeli nie niesie to ze sobą znaczącego pogorszenia jakości pliku. Mimo włączenia niniejszej opcji do ScriptPNG nie zalecam jej stosować, z uwagi na brak możliwości wyboru algorytmu kwantyzacji kolorów (ang. color quantization algorithm).

Jeżeli zależy nam na czasie, powinniśmy wybrać metodę Complete Optimization, dzięki której bardzo szybko można uzyskać wyniki miejscami porównywalne z metodą ekstremalną. Jeśli zależy nam na jak największej kompresji, wybieramy XtremCompression, przy czym ustawiając mniejszą liczbę przebiegów, zaoszczędzimy trochę czasu. Optymalizacja na tym etapie i tak oparta jest na losowości, nawet wybór 100 czy 200 przebiegów nie zagwarantuje nam, że rozmiar pliku wynikowego ulegnie znaczącemu zmniejszeniu, oczywiście zwiększając wartość Trials, podnosimy to prawdopodobieństwo. Z moich obserwacji wynika również, że czym większa rozdzielczość obrazu tym efektywność optymalizacji z rondomizacją tablic Huffman’a jest większa, podobnie jest z obrazami gradientowymi zapisanymi w niskich rozdzielczościach.

O autorze

Mariusz Kołacz

Z zawodu mgr inż. informatyk, zwolennik nowoczesnych technologii i fan Nikoli Tesla. Prowadzi kilka blogów o tematyce technologicznej. Po godzinach lubi przeczytać dobrą książkę, pozwiedzać ciekawe miejsca w Polsce lub spędzić wolny czas na łonie natury.