Jak skompresować setki obrazów bez utraty jakości za pomocą Caesium
Ostatnio porządkowałem stary projekt, w którym nagromadziło się kilka gigabajtów zasobów: banerów, zrzutów ekranu dokumentacji, podglądów artykułów. Wysyłanie tego do repozytorium lub przesyłanie do bucketa bez optymalizacji to pewny sposób na rozdęcie builda i zwiększenie zużycia transferu. Pisanie własnego skryptu opartego na ImageMagick do jednorazowego zadania jest uciążliwe, a usługi chmurowe takie jak TinyPNG szybko osiągają limity darmowego planu lub wymagają wysyłania poufnych plików na zewnętrzne serwery.
W takich sytuacjach z pomocą przychodzi Caesium Image Compressor. To narzędzie open-source działające na pulpicie, które obsługuje kompresję obrazów wsadowo bezpośrednio na Twoim komputerze.

Co siedzi pod maską i dlaczego tego potrzebujesz
Projekt od wielu lat rozwijany jest przez developera działającego pod nickiem Lymphatus. Pierwsza wersja kiedyś zyskała popularność dzięki swojej prostocie, ale począwszy od drugiej gałęzi, Caesium zostało przepisane niemal od zera.
Architektura jest tutaj interesująca:
- GUI napisane jest w C++ z użyciem Qt6.
- Kompresja i przetwarzanie obsługiwane są przez osobną bibliotekę
libcaesium, napisaną w Rust.
Połączenie Qt i Rust zapewnia aplikacji szybką wielowątkowość i niskie zużycie pamięci, nawet gdy wrzucisz do kolejki setki ciężkich zrzutów ekranu.
Główne możliwości
Obsługa popularnych formatów
Caesium radzi sobie z JPG, PNG i WebP (w opisie repozytorium wspomniano również TIFF). Możesz po prostu przeciągnąć partię mieszanych plików do okna programu i zastosować wspólne ustawienia lub skonfigurować przetwarzanie osobno dla każdego formatu.
Elastyczna kontrola jakości i kompresji
Utilitarian obsługuje zarówno kompresję bezstratną, jak i kompresję z kontrolowaną utratą jakości (lossy). Interfejs wyraźnie pokazuje różnicę: rozmiar przed i po, procent zaoszczędzonego miejsca oraz podgląd wyniku.
Zmiana rozdzielczości w locie
Często projektanci lub menedżerowie treści zapisują layouty w rozdzielczości 4K lub 8K, mimo że dla internetu wystarczy 1200px szerokości. W Caesium możesz ustawić skalowanie według procentów lub stałych wymiarów, z zachowaniem proporcji.
Pełna autonomia
Wszystkie obliczenia odbywają się lokalnie. Jeśli musisz szybko zoptymalizować kilka obrazów na czyimś komputerze, projekt ma wersję webową pod adresem caesium.app, ale główną zaletą klienta desktopowego jest niezależność od sieci i szybkość przetwarzania.
Kompilacja ze źródeł
Dla Windows i macOS gotowe instalatory oraz wersje przenośne dostępne są w wydaniach GitHub. Użytkownicy Linuksa często muszą kompilować aplikację samodzielnie lub korzystać z nieoficjalnych buildów.
Kompilacja wymaga kompilatora Rust (cargo), CMake oraz Qt6 SDK (wersja 6.8+).
Konfiguracja dla Linuksa:
cmake -B build_dir -DCMAKE_PREFIX_PATH=/path/to/Qt/version/gcc_64
Dla Windows przez MinGW:
cmake -B build_dir -DCMAKE_PREFIX_PATH=/path/to/Qt/version -G "MinGW Makefiles"
Po czym uruchamiana jest kompilacja:
cmake --build build_dir --config Release --target caesium_image_compressor
Ciekawe: autor obecnie aktywnie zbiera feedback i przygotowuje główną gałąź v3.0.0, a dyskusje odbywają się w issue repozytorium.
Kto znajdzie to narzędzie przydatne
Caesium idealnie wpisuje się w workflow web developerów, autorów blogów, fotografów i technicznych pisarzy. Jeśli regularnie musisz przygotowywać grafikę do wydań, dokumentacji lub stron statycznych bez konfigurowania skomplikowanych pipeline'ów konsolowych, to narzędzie oszczędza mnóstwo czasu. Po prostu przeciągnij folder z obrazami do okna programu, naciśnij jeden przycisk i otrzymaj czyste, zoptymalizowane zasoby.
Powiązane projekty