Squoosh v2 隆重登場

新的轉碼器支援、新版設計和 CLI 支援!

Mariko Kosaka

Squoosh 是 Google 團隊建構的圖片壓縮應用程式,並在 2018 年 Chrome 開發人員高峰會上亮相。這個工具的設計目的,是要讓您輕鬆實驗 不同的圖片轉碼器,以及展現新式網路的能力。

我們今天將針對應用程式發布重大更新,除了提供更多支援轉碼器和新設計,還推出新的方法,讓您可在指令列 (名為 Squoosh CLI) 上使用 Squoosh。

支援新的轉碼器

除了瀏覽器內建的轉碼器外,我們現在也支援 OxiPNG、MozJPEG、WebP 和 AVIF。使用 WebAssembly 再次產生新的轉碼器。將轉碼器和解碼器編譯成 WebAssembly 模組,使用者就算偏好的瀏覽器不支援,也可以存取並測試較新的轉碼器。

正在啟動指令列 Squoosh!

自 2018 年首次推出以來,常見的使用者要求是在沒有 UI 的情況下,透過程式輔助方式與 Squoosh 互動。由於我們的應用程式是位於指令列轉碼器工具頂端的 UI,所以我們覺得這個路徑有點衝突。不過,我們也明白自己想要與整套轉碼器套件互動,而非使用多個工具。由 Squoosh CLI 做到這一點

如要安裝 Beta 版 Squoosh CLI,您可以執行 npm i @squoosh/cli,或使用 npx @squoosh/cli [parameters] 直接執行。

Squoosh CLI 是以 Node 編寫而成,並使用 PWA 所用的相同 WebAssembly 模組。透過大量的工作站,所有影像都會以平行的方式解碼、處理和編碼。我們也會使用 Rollup 將所有項目組合成一個 JavaScript 檔案,確保透過 npx 安裝快速流暢。CLI 也提供自動壓縮功能,可在不降低視覺擬真度的情況下嘗試盡可能降低圖片品質 (使用 Butteraugli 指標)。

透過 Squoosh CLI,您可以將網頁應用程式中的圖片壓縮為多種格式,並使用 <picture> 元素讓瀏覽器選擇最佳版本。我們也打算建構 Webpack、Rollup 和其他建構工具的外掛程式,將圖片壓縮功能自動成為建構程序的一部分。

從 Webpack 到 Rollup 的建構程序變更

Squoosh 的同一團隊今年花費大量時間研究工具報表的建構工具,並決定將建構程序從 Webpack 改為 Rollup。

這個專案一開始是先用 Webpack 來嘗試,因為我們想和團隊一起試用 Webpack。2018 年時隨著時間的推移,我們發現 Rollup 容易上手的外掛程式系統,加上 ESM 操作的簡易方式,讓 Rollup 成為這項專案的自然選擇。

更新使用者介面設計

此外,我們也更新了以 blobs 做為視覺元素的應用程式 UI 設計。這會影響程式碼處理資料的方式Squoosh 以 blob 的形式傳遞圖片資料,因此在設計中納入某些 blob 感覺很自然 (是否取得?)。

我們也將顏色運用在提升,讓顏色不只一個強調色,更是向量,藉此區別和加強選項中的圖像呈現方式。總而言之,首頁會比較有活力,且工具本身也更加清楚簡潔。

後續步驟

我們會持續努力開發 Squoosh,隨著新的圖片格式推出,我們希望使用者能在一個地方玩遊戲,不必耗費大量心力。我們也希望擴展 Squoosh CLI,並將更多內容整合至網頁應用程式的建構程序。

Squoosh 向來都是開放原始碼,但我們從未在拓展社群上。我們預計在 2021 年增加貢獻者人數,並為專案提供更完善的新手上路流程。

你對「Squoosh」有任何想法嗎?請透過 Issue Tracker 告訴我們。團隊即將延長冬日假期,但我們會承諾在新年內與您聯絡。