Przedstawiamy Squoosh v2

Obsługa nowych kodeków, nowego wyglądu i interfejsu wiersza poleceń.

Mariko Kosaka

Squoosh to aplikacja do kompresji obrazów, która została stworzona i zaprezentowana przez Chrome Dev Summit 2018. Stworzyliśmy go, by ułatwić eksperymentowanie z różnymi kodekami obrazów i zaprezentować możliwości współczesnego internetu.

Dzisiaj wprowadzamy dużą aktualizację aplikacji, która obsługuje więcej kodeków, nowy wygląd i nowy sposób używania Squoosh w wierszu poleceń o nazwie Squoosh CLI.

Oprócz kodeków natywnie obsługiwanych w przeglądarce obsługiwane są teraz formaty OxiPNG, MozJPEG, WebP i AVIF. Ponownie utworzono nowy kodek przy użyciu WebAssembly. Dzięki kompilowaniu kodeka i dekodera jako modułu WebAssembly użytkownicy mogą korzystać z nowszych kodeków i eksperymentować z nimi, nawet jeśli preferowana przez nich przeglądarka ich nie obsługuje.

Uruchamianie wiersza poleceń Squoosh!

Od premiery w 2018 roku użytkownicy często prosili nas o zautomatyzowaną interakcję z Squashem bez interfejsu użytkownika. Mieliśmy pewne wątpliwości co do tej ścieżki, ponieważ nasza aplikacja była interfejsem opartym na kodekach opartych na wierszu poleceń. Rozumiemy jednak potrzebę korzystania z całego pakietu kodeków, a nie z wielu narzędzi. Właśnie do tego służy Squoosh CLI.

Możesz zainstalować wersję beta interfejsu wiersza poleceń Squoosh, uruchamiając npm i @squoosh/cli lub uruchamiając go bezpośrednio za pomocą npx @squoosh/cli [parameters].

Interfejs wiersza poleceń Squoosh jest napisany w Node.js dokładnie z tych samych modułów WebAssembly, których używa PWA. Dzięki szerokiemu wykorzystaniu instancji roboczych wszystkie obrazy są równolegle dekodowane, przetwarzane i kodowane. Używamy też funkcji o pełnym zakresie, która łączy wszystko w jeden plik JavaScript, dzięki czemu instalacja za pomocą npx jest szybka i bezproblemowa. Interfejs wiersza poleceń oferuje również automatyczną kompresję, w ramach której próbuje ona maksymalnie obniżyć jakość obrazu bez pogarszania jakości obrazu (z użyciem wskaźnika Butteraugli).

Dzięki interfejsowi wiersza poleceń Squoosh możesz skompresować obrazy w aplikacji internetowej do wielu formatów i użyć elementu <picture>, aby przeglądarka wybrała najlepszą wersję. Planujemy też dodać wtyczki do Webpacka, Rollupa i innych narzędzi, które sprawią, że kompresja obrazów stanie się automatycznie częścią procesu kompilacji.

Zmiana procesu kompilacji z Webpacka na Rollup

Ten sam zespół, który stworzył Squoosh, w tym roku spędził dużo czasu na analizowaniu narzędzi do tworzenia na potrzeby raportu Tooling Report i zdecydował się przejść z Webpacka na Rollup.

Zaczęliśmy pracę nad Webpackiem, bo chcieliśmy go wypróbować jako zespół. W roku 2018 było jedynym narzędziem, które dało nam wystarczającą kontrolę, aby dostosować projekt do naszych potrzeb. Z czasem przekonaliśmy się, że prosty system wtyczek firmy Rollup oraz prostota ESM sprawiają, że jest to naturalny wybór w tym projekcie.

Nowy wygląd interfejsu

Zaktualizowaliśmy też interfejs aplikacji, dodając blobs jako element wizualny. Krótko o tym, jak traktujemy dane w kodzie. Squoosh przekazuje dane graficzne w postaci bloba, więc dodawanie do projektu pewnych blobów wydaje się naturalne.

Dostosowano także użycie kolorów, aby były to nie tylko akcent, lecz także wektor, który pozwolił rozróżnić i wzmocnić kontekst dla poszczególnych opcji. Ogólnie rzecz biorąc, strona główna jest bardziej aktywna, a narzędzie jest przejrzyste i zwięzłe.

Co dalej?

Planujemy dalej pracować nad Squoosh. Chcemy, aby użytkownicy mieli dostęp do miejsca, w którym będą mogli bez trudu korzystać z kodeka. Mamy też nadzieję zwiększyć wykorzystanie interfejsu Squoosh CLI i więcej integracji z procesem tworzenia aplikacji internetowej.

Squoosh zawsze było oprogramowaniem typu open source, ale nigdy nie skupialiśmy się na rozwijaniu społeczności. W 2021 r. planujemy zwiększyć liczbę współtwórców i ulepszyć proces wdrażania projektu.

Masz jakieś pomysły na aplikację Squoosh? Daj nam znać, korzystając z narzędzia do śledzenia błędów. Nasz zespół jedzie na wydłużone zimowe wakacje, ale obiecujemy, że skontaktujemy się z Tobą w przyszłym roku.