Obsługa nowych kodeków, nowego wyglądu i interfejsu wiersza poleceń.
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.
Obsługa nowych kodeków
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.