如何實現將下載的WebP檔案自動轉換為PNG

如何實現將下載的WebP檔案自動轉換為PNG

我喜歡 CloudFlare。它能讓網站快很多。它能做的一件事就是在瀏覽器(如谷歌瀏覽器)支援 WebP 時自動,將 PNG 檔案更改為 WebP。這非常棒,因為它們更小,因此載入速度更快。

不過,有時我需要下載一個影象檔案,但最終得到的卻是一個 .webp 檔案。我的作業系統無法處理這些檔案。所以我有兩個選擇:在 Safari 中開啟圖片 URL(它還不支援 WebP),或者將其轉換為 PNG。

這種情況在我身上發生得太多了,所以我決定找到一個更好的解決方案。我在 Mac 上執行一個名為 Hazel 的工具,由 Noodlesoft 提供。這個工具可以幫助我保持下載資料夾和垃圾資料夾的乾淨,而且還有其他一些我可以自己定義的規則。我決定新增一條新規則。

前提條件

要將 .webp 檔案轉換為 .png 檔案,需要使用 Google 的 WebP 庫。在 Mac 上,最簡單的方法就是使用 Brew

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
brew install webp
brew install webp
brew install webp

將 WebP 轉換為 PNG

將 WebP 檔案轉換為 PNG 的命令如下:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/usr/local/bin/dwebp -o target.png input.webp
/usr/local/bin/dwebp -o target.png input.webp
/usr/local/bin/dwebp -o target.png input.webp

在 Hazel 中新增規則

現在是開啟 Hazel 並新增規則的時候了:

hazel-rule-screenshot-1557x1200-1

我們的規則是:

  • 查詢下載資料夾中以 .webp 結尾的檔案。
  • 執行指令碼將這些 .webp 檔案轉換為 PNG。
  • .webp 檔案移至垃圾箱。
  • 顯示通知,說明已完成所有操作。

所有這些在 Hazel 中都很容易配置。你需要的是以下嵌入式指令碼:

hazel-script-screenshot-3-1557x1200-1

指令碼使用 /bin/bash,因為我們需要使用一些 bash 魔法去除 .webp 副檔名,然後替換為 .png

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/usr/local/bin/dwebp -o "${1%%.*}.png" $1
/usr/local/bin/dwebp -o "${1%%.*}.png" $1
/usr/local/bin/dwebp -o "${1%%.*}.png" $1

按上述說明設定好所有規則並複製貼上指令碼後,儲存規則即可。您可以將任何 WebP 檔案儲存到 Downloads 資料夾(或您決定執行此規則的任何資料夾),它將自動轉換為 PNG!(via Joost 

評論留言