APNG 轉 WebP 示範

平時聽到 gif 就會想到會動的圖片,看到會動的圖片就會想到 gif ,不過其實還有其他格式可以儲存會動的圖片,例如 APNG(Animated Portable Network Graphics), WebP 等。
APNG 在 2004 年由 FireFox 的母公司 Mozilla 建立,APNG 的副檔名和 PNG 一樣,都是 .png ,是無損的動態圖片,有許多應用程式支援,但是並沒有被 PNG 官方承認。
WebP 是 Google 在 2010 年建立,也是無損的動態圖片格式,Gmail 和 Google 相簿都支援 WebP,聊天軟體 Telegram 使用 WebP 作為動態表情符號的格式,此格式被絕大多速瀏覽器支援。

筆者想要將 APNG 動圖轉換為 WebP , 上網找了許多 C# 套件,不是已停止維護,就是沒有原生支援 APNG ,後來找到 Aspose.Imaging 套件,官網上有附上轉換的程式碼,可以免費下載試用,但是就是沒有寫免費使用的條件,而最便宜的授權需要 999 美金,一直到後來一轉檔才發現原來會直接在上面遮擋,無法免費使用。

最後發現其實要將 apng 轉為 WebP 非常簡單,使用 ffmpeg 一句話就搞定:
    
.\ffmpeg.exe -i in.png out.webp
    

以 Windows 11 為例,只要到 GitHub 上下載 ffmpeg-master-latest-win64-gpl.zip ,解壓縮後到 ffmpeg.exe 的目錄上執行指令視窗,輸入上面的指令(記得替換 in.png 和 out.webp 到自己的檔案路徑)即可轉換完成。

假設想要讓寬度縮放為 512 像素,另一邊維持長寬比(帶入 -1),可以這樣做:
    
.\ffmpeg.exe -i in.png -vf "scale=512:-1" out.webp
    

如果想要將全部檔案轉換,使用命令提示字元(cmd)可以這樣做:
    
for %i in (*.png) do ffmpeg.exe -i "%i" -vf "scale=512:-1" "%~ni.webp"
    



參考資料:
WiKi - APNG
WiKi - WebP

留言