Oprogramowanie

Kompresja plików PDF JPG JPEG MP3 MP4 TIFF GIF MKV 3GP SWF i 200 innych

zdjęcie na tle monitora

FileOptimizer to jeden z najbardziej kompleksowych programów do optymalizacji plików (nie tylko graficznych). Za pomocą aplikacji możemy zmniejszyć rozmiar plików BMP, PNG, JPG, GIF, ICO, TIF, PSD, jak również SWF, plików CSS, JS, JSON, HTML, XML, archiwów GZ, ZIP, TAR, TGZ, plików audio-video MP3, MP4, OGG, dokumentów PDF, EPUB, XPS, a także DOC, DOCX, ODS, ODT i innych. Aktualnie FileOptimizer obsługuje ponad 200 formatów, co czyni z niego niekwestiowanego lidera pod tym względem. Aplikacja całkowicie bezpłatna.

FileOptimizer do optymalizacji poszczególnych plików wykorzystuje zewnętrzne narzędzia (łącznie jest ich prawie 50). Z ciekawszych można wymienić:

  • optipng
  • TruePNG
  • pngout
  • pngquant
  • PngOptimizer
  • pngwolf
  • Leanify
  • ImageMagick
  • gifsicle
  • DeflOpt
  • apngopt
  • jpegoptim
  • mozjpegtran
  • mozjpeg
  • imagew

W zależności od optymalizowanego typu pliku, aplikacja dobierze automatycznie najlepsze możliwe narzędzia, opierając się również na ustawieniach użytkownika (kompresji stratnej/bezstratnej, poziomie kompresji).

FileOptimizer

Interfejs aplikacji jest przejrzysty. Wszystkie niezbędne opcje dostępne są z poziomu okna głównego oraz menu kontekstowego. Ekran Options pozwoli nam zmodyfikować domyślne ustawienia, określić poziomy kompresji dla danego typu plików, zdefiniować dodatkowe formy optymalizacji.

Opcje FileOptimizer

Dla grafik w formacie PNG można uzyskać nawet kikunastokrotne zmniejszenie rozmiaru pliku, jeżeli włączymy kompresję stratną (związaną między innymi z redukcją palety kolorów). Sam proces kompresji przebiega sprawnie, aczkolwiek przy dużej liczbie plików odczuwa się brak wielowątkowości – jednocześnie może być optymalizowany tylko jeden plik, dla przykładu, w niektórych programach i skryptach można przetwarzać jednocześnie 2, 4, 8 lub nawet 16 zadań (wątków/plików).

Oczywiście ogromne znaczenie dla czasu wykonywania operacji ma nie tylko rozmiar pliku wejściowego, ale również wybrany poziom kompresji, czym wyższy ustawimy, tym dłużej dany plik będzie przetwarzany, jednak w porównaniu do alternatywnej ekstremalnej optymalizacji plików PNG (ScriptPNG, PNGSlim), czasy uzyskiwane przez FileOptimizer są wręcz rewelacyjne, przy zachowaniu porównywalnego współczynnika kompresji.

Narzędzie FileOptimizer testowałem głównie na grafikach (PNG i JPG) oraz plikach PDF. Poniżej przykładowe wyniki…

Kompresja PNG w FileOptimizer

Rozmiar pliku przed kompresją/po kompresji. Pierwszy wynik dotyczy ScriptPNG (wersja 05.08.2012, metoda Max), drugi FileOptimizer (9 stopień, włączona kompresja stratna).

  • Plik1 (kolorów 662) – 35281 bajtów / ScriptPNG 20313 (662) / FO 17159 (248)
  • Plik2 (kolorów 1132) – 45724 bajtów / ScriptPNG 26596 (1132) / FO 18021 (248)

Jakość pliku po optymalizacji w FileOptimizer minimalnie gorsza (za sprawą zredukowania liczby kolorów), jednak rozmiar aż o 3154 bajtów mniejszy, a w przypadku pliku nr 2 o 8575, co stanowi świetny rezultat. Obydwa pliki to typowe zrzuty ekranu, różnice w jakości prawie niezauważalne (widoczne tylko w dużym powiększeniu). Tam gdzie zrzuty ekranu nie mają przejść tonalnych, kompresja stratna jest dobrym rozwiązaniem. Podczas przetwarzania obrazów gradientowych przydałoby się zastosować algorytm NeuQuant, można wtedy osiągnąć o wiele wyższą jakość obrazu wynikowego, przy stosunkowo niewielkim zwiększeniu jego rozmiaru.

W przypadku wybrania kompresji bezstratnej wyniki są już mniej przekonujące…

  • Plik1 – 35281 / ScriptPNG 20313 / FO 20228 (zysk 85 bajtów)
  • Plik2 – 45724 / ScriptPNG 26596 / FO 26257 (zysk 339 bajtów)

Mnimalnie lepszy wynik kompresji w FileOptimizer, jednak czasy zdecydowanie na korzyść ScriptPNG. Zysk 100-300 bajtów na jednym pliku nie jest wart wydatku czasowego (prawie 5-krotnie dłuższy czas kompresji).

Kompresja JPG

Dla plików JPG nie da się osiągnąć aż tak dobrego wyniku. W przypadku kompresji bezstratnej zmniejszenie rozmiaru pliku JPG odbywa się głównie poprzez wycinanie metadanych (dodatkowych informacji zapisanych w pliku – EXIF, IPTC). W teście użyty ScriptJPG (100% jakości, Losslessy, wersja 03.09.2012), FileOptimizer na domyślnych ustawieniach.

  • Plik1 – rozmiar oryginalny 54599 / ScriptJPG 51908 / FO 51922
  • Plik2 – 68935 / ScriptJPG 66234 / FO 66248

Jak widać minimalnie lepszy ScriptJPG. Czasy przetwarzania obrazów porównywalne.

Kompresja PDF

Jak FileOptimizer radzi sobie z plikami PDF? Sprawdźmy dwa e-booki…

  • Plik1 – przed 4910523 / po 3702616 (zysk 1207907 bajtów)
  • Plik2 – przed 2170636 / po 2170636 (zysk 0 bajtów)

Docelowa rozdzielczość pliku 150 DPI. Plik 1 wprawdzie zmniejszył swój rozmiar o 1,15 MB, ale tekst zawarty w PDF zmienił kolor z czarnego na czerwony, dodatkowo widać było pogorszenie jakości grafiki. Plik 2 najwyraźniej był już skompresowany. Testowałem kilkadziesiąt innych plików PDF i tylko w jednym przypadku doszło do zmiany koloru czcionki. Średni zysk w kompresji wynosił 18%. W wydrukach testowych skompresowane e-booki miały zauważalnie gorszą jakość, dlatego kompresji PDF w FileOptimizer nie polecam dla plików, które chcemy później wydrukować, chyba że zawierają sam tekst (bez grafik, zrzutów ekranu), ewentualnie gdy w ustawieniach wybierzemy wyższą rozdzielczość (300 DPI), jednak w tym wypadku redukcja rozmiaru będzie niewielka.

FileOptimizer to bardzo ciekawa aplikacja, można poeksperymentować z różnymi ustawieniami, jednak dla wielu typów plików pole manewru jest ograniczone, mimo to warto przetestować aplikację. FileOptimizer można pobrać ze strony projektu na sourceforge.

Obsługiwane formaty plików (wersja programu 7.90.1325): 3GP, A, AAI, ACC, AIR, APK, APNG, APPX, AVS, BAR, BMP, BPL, BSZ, CBT, CBZ, CDR, CDT, CHM, CHS, CHW, CPL, CSL, CSS, DCX, DEB, DES, DIB, DLL, DOC, DOCM, DOCX, DOT, DOTM, DOTX, DRV, DWF, DWFX, EASM, EPDF, EPUB, EXE, FAX, FB2, FITS, FLAC, FPX, FXG, GALLERY, GALLERYCOLLECTION, GALLERYITEM, GIF, GRS, GZ, HDR, HRZ, HTM, HTML, ICO, INK, IPA, IPK, IPSW, ITA, ITZ, JAR, JFI, JFIF, JIF, JNG, JP2, JPC, JPE, JPEG, JPG, JS, JSON, KML, KMZ, KSF, LIB, LZL, M4A, M4B, M4P, M4R, M4V, MDB, MDT, MDZ, MHT, MHTML, MIF, MIFF, MIX, MIZ, MKA, MKS, MKV, MMIP, MNG, MP3, MP4, MPD, MPP, MPT, MSI, MSP, MST, MSZ, MTV, MVZ, NAR, NBK, NOTEBOOK, O, OBJ, OCX, ODB, ODF, ODG, ODP, ODS, ODT, OEX, OGA, OGG, OGV, OGX, ONE, OSK, OST, OTB, OXPS, P7, PALM, PBM, PCC, PCD, PCDS, PCX, PDB, PDF, PFM, PGM, PIC, PICON, PICT, PK3, PNG, PNM, POTM, POTX, PPAM, PPM, PPS, PPSM, PPSX, PPT, PPTM, PPTX, PSB, PSD, PTIF, PTIFF, PUB, PUZ, R2SKIN, RDB, RMSKIN, RVT, S3Z, SCR, SGML, SLDASM, SLDDRW, SLDM, SLDPRT, SLDX, SPL, STZ, SUN, SVG, SVGZ, SWC, SWF, SYS, TAR, TGZ, THM, TIF, TIFF, VBX, VDX, VICAR, VIFF, VLT, VSD, VSS, VST, VSX, VTX, WAL, WBA, WBMP, WEBP, WMZ, WSZ, XAP, XBM, XHTML, XL, XLAM, XLC, XLM, XLS, XLSM, XLSX, XLTM, XLTX, XLW, XML, XMZ, XNK, XPI, XPM, XPS, XSF, XSL, XSLT, XSN, XWD, ZIP, STICKYNOTESSNT, THUMBSDB (wszystkich grubo ponad 200).

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.