Cwebp

名稱

cwebp:將圖片檔壓縮為 WebP 檔案

Synopsis

cwebp [options] input_file -o output_file.webp

說明

cwebp 會使用 WebP 格式壓縮圖片。輸入格式可以是 PNG、JPEG、TIFF、WebP 或原始 Y'CbCr 範例。 注意:系統不支援動畫 PNG 和 WebP 檔案。

選項

基本選項包括:

-o string
指定輸出 WebP 檔案名稱。省略時,cwebp 會執行 ,但只會回報統計資料。 使用「-」做為輸出名稱,這樣輸出至「stdout」即可。
-- string
明確指定輸入檔案。如果輸入內容 檔案開頭為「-」。這個選項必須顯示 last。 並忽略此後任何其他選項。
-h, -help
簡短的使用摘要。
-H, -longhelp
所有可能選項的摘要。
-version
顯示版本號碼 (以 primary.minor.revision) 顯示,然後結束。
-lossless
對圖片進行編碼,不會造成任何損失。針對有完全透明區域的圖片 只有在 使用「-exact」選項。
-near_lossless int
指定近乎無損的圖片預先處理程度。這個選項會調整 像素值協助壓縮,但對視覺呈現的影響微乎其微 品質系統會自動觸發無損壓縮模式。 範圍介於 0 (預先處理量最大) 至 100 (不預先處理, )。一般值約為 60。請注意,使用 -q 100 時會有損失 有時候能帶來更好的成果
-q float

指定 0100 之間的 RGB 管道壓縮係數。 預設值為 75

在有損壓縮 (預設) 的情況下,小因數產生的值會較小 。您必須使用 100

如果是無損壓縮 (由 -lossless 選項指定), 小型係數提高壓縮速度,但會產生更大的檔案。 系統會使用 100 的值達到最大壓縮。

-z int

在指定等級介於 0 的情況下,開啟 lossless 壓縮模式 而 9,等級 0 代表最快,9 代表最慢。快速模式 產生的檔案大小比速度較慢的檔案還大-z 6 是不錯的預設設定。 這個選項實際上是調整某些預先定義設定的快速選項 以及方法如果之後使用 -q-m 選項,就會 並作廢。

-alpha_q int

指定 0 與 alpha 壓縮數的壓縮因數 100。Alpha 的無損壓縮使用 100 值來達成。 較低的值則會產生有損壓縮。預設值為 100

-preset string

指定一組預先定義的參數,以符合特定類型的 來源資料。可能的值包括:defaultphotopicturedrawingicontext

因為 -preset 會覆寫其他參數的的值 (-q 除外 此選項最好按照 引數。

-m int

指定要使用的壓縮方法。這個參數可控制 。 可能的值介於 06 之間。預設值為 4。時間越高 編碼器會花費較多時間檢查 找出可能的編碼方式,然後再決定品質增幅。較低的值可以 不但加快處理時間,還可能會增加檔案大小 壓縮品質較低

-crop x_position y_position width height

將來源裁剪到座標左上角的矩形 (x_positiony_position),大小為 width x height。這個裁剪方式 區域必須完全包含在來源矩形中。注意:裁剪範圍 會在任何縮放「之前」套用。

-resize width height

將來源大小調整為 width x height 的矩形。如果有 (但並非兩者) 的寬度或高度參數都是 0,這個值會是 計算方法是保留長寬比注意:系統會在之後套用資源調度 裁剪。

-mt

如果可以,請使用多執行緒進行編碼。

-low_memory

將壓縮後的檔案大小減少四倍,降低有損編碼的記憶體用量 大小 (通常)。這會減慢編碼速度並輸出 大小和變形略有不同這個標記只適用於 方法 3 以上,且預設為關閉。請注意,如果將這個標記保持停用 會有部分副作用:這會強制使用特定位元流 例如分區數量 (強制為 1) 等功能。請注意 使用本例時,cwebp 會列印位元流大小的詳細報告 如果有需要 SQL 指令的分析工作負載 則 BigQuery 可能是最佳選擇

有損選項

這些選項只有在進行有損編碼時 (預設值, 或無 Alpha 版)。

-size int
指定要嘗試達成壓縮的目標大小 (以位元組為單位) 輸出內容這個壓縮器會對 以盡可能接近目標位置如果同時有 -size 和 使用 -psnr-size 值可用。
-psnr float
指定要嘗試達到壓縮輸出值的目標 PSNR (以 dB 為單位)。 壓縮器會進行數次部分編碼傳遞 盡可能達成目標如果同時使用 -size-psnr-size」的值將全面採用。
-pass int
設定選項中所選選區使用的通行證數量上限 -size-psnr。最大值為 10,預設值為 1。如果選項 使用 -size-psnr,但未指定 -pass,此為預設值 「6」會使用票證如果指定 -pass,但未指定 -size-psnr 的目標是 40 dB 的目標 PSNR。
-af
開啟自動篩選器。演算法會花更多時間進行最佳化 篩選強度以達到最佳品質。
-jpeg_like
變更內部參數對應,讓其與預期大小相符 JPEG 壓縮檔。這個旗標通常會產生 大小類似 JPEG 檔案 (相同的 -q 設定),但 減少影像失真現象

進階選項:

-f int
指定取消封鎖濾鏡的強度 (介於 0 之間 (無篩選)) 和 100 (最大篩選)。將值設為 0 會停用任何篩選功能。 值越大,套用的篩選程序就越難 直到解碼後產生圖片值越大,畫面越平順 會出現。一般值通常介於 2050 之間。
-sharpness int
指定篩選的銳利度 (如有使用)。範圍為 0 (最高) 到 7 (尖銳度最低)。預設值為 0
-strong
採用高強度篩選功能 (如果因為-f而使用篩選功能) 選項)。高強度篩選功能預設為開啟。
-nostrong
停用高強度篩選功能 (如果因為-f而使用篩選功能) 選項),並改用簡單的篩選功能。
-sharp_yuv
視需要使用更準確、更清晰的 RGB ->YUV 轉換。請注意,此 速度比預設的「快速」RGB ->YUV 轉換。
-sns int
指定空間雜訊形狀的振幅。空間雜訊形狀 (簡稱「sns」) 是指一般的內建演算法集合 用於決定圖片中應使用較少位元、 以及哪些地方可以更妥善傳輸這些位元可能範圍是 0 (演算法已關閉) 至 100 (最高效果)。預設值為 50
-segments int
變更 SKU 區隔期間要使用的分區數量 演算法。區隔必須介於 14 之間。預設值為 4。 這個選項對方法 3 以上版本沒有作用,除非 -low_memory 是 使用方式
-partition_limit int
限制某些巨集區塊使用的位元數,藉此降低品質。 範圍是 0 (無降級為預設值) 至 100 (完全降級)。 如果圖片過大,在 3070 的範圍內,實用的值通常為實用值。於 VP8 格式,也就是控制分區的上限是 512, 000, 用來儲存下列資訊: 其所屬區段 (採用 Intra 4x4 編碼或 16x16 模式下的預測模式,最後則是用於個別預測 子區塊。以大型圖片來說,512K 只會釋出空間數次 16x16 巨集區塊。每個巨集區塊的絕對下限為 4 位元。略過, 區隔和模式資訊幾乎佔了這 4 位元 (不過 則不可能),這樣對於超大型圖片而言就會造成問題。 partition_limit 係數可控制最大位元成本模式的頻率 (Intra 4x4)在達到 512K 上限時,這就非常實用 並顯示下列訊息:錯誤代碼:6 (PARTITION0_OVERFLOW:分區 0 過大而無法容納 512k)。如果使用 -partition_limit 不足以符合 512k 限制,應 減少區隔,以便為每個巨集區塊儲存更多的標頭位元。詳情請見 -segments 選項。請注意,-m-q 選項也會影響 如何達到這個上限

記錄選項

這些選項可控制輸出層級:

-v
列印額外資訊 (尤其是編碼時間)。
-print_psnr
計算及回報平均 PSNR (峰值訊號-雜訊比)。
-print_ssim
計算及回報平均 SSIM (結構相似性指標,請參閱 詳情請參閱 https://en.wikipedia.org/wiki/SSIM)。
-print_lsim
計算及回報本地相似度指標 (錯誤數量總和 相鄰的像素相鄰)。
-progress
回報編碼進度 (百分比)。
-quiet
不列印任何資料。
-short
請只列印簡要資訊 (輸出檔案大小和 PSNR) 進行測試 用途。
-map int
輸出額外的編碼資訊 ASCII 對應圖。可能的地圖值 範圍從 16。僅供偵錯之用。

其他選項

其他進階選項如下:

-s width height
指定輸入檔案實際上是由原始 Y'CbCr 範例組成 遵循 ITU-R BT.601 建議的 4:2:0 線性格式 luma 平面的尺寸為 width x height
-pre int
指定一些預先處理步驟,如果使用 2 的值會觸發 在 RGBA 至 YUVA 轉換期間,具有品質依賴性偽隨機性的做法 (僅限高失真壓縮)。
-alpha_filter string
指定 Alpha 平面的預測篩選方法。下列其中一項 nonefastbest,遞增複雜和緩慢的順序。 預設值為 fast。在內部,Alpha 篩選功能是以四項 可能的預測結果 (無、水平、垂直、漸層)。best 模式就會逐一嘗試每個模式 大小fast 模式只會嘗試形成優先排序猜測,但 測試所有模式。
-alpha_method int
指定 Alpha 壓縮使用的演算法:01。演算法 0 表示不壓縮,1 會使用 WebP 無損格式壓縮。 預設為 1
-exact
在透明區域內保留 RGB 值。預設設定為關閉,以便提供協助 壓縮率
-blend_alpha int
這個選項會將 Alpha 版 (如果有的話) 和來源 十六進位中指定的背景顏色,以 0xrrggbb 表示。Alpha 版 管道的值會重設為不透明值 255
-noalpha
使用這個選項即可捨棄 Alpha 版。
-hint string
指定輸入圖片類型的提示。可能的值包括:photopicturegraph
-metadata string

出現下列情況時,要從輸入複製到輸出內容的中繼資料清單 (以半形逗號分隔) 。有效值:allnoneexificcxmp。預設值為 none

請注意,每種輸入格式可能不支援所有組合。

-noasm

停用所有組合最佳化。

錯誤

範例

cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png

作者

cwebplibwebp 的一部分,由 WebP 團隊撰寫。 最新原始碼樹狀結構位於 https://chromium.googlesource.com/webm/libwebp/

本手冊適用於 Debian 專案 (可能會用於 和其他)。