名稱
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
- 列印版本號碼 (格式為 major.minor.revision) 並結束。
-lossless
- 以無損方式編碼圖片。針對有完全透明區域的圖片
只有在
使用「
-exact
」選項。 -near_lossless int
- 指定近乎無損的圖片預先處理程度。這個選項會調整像素值,以利壓縮,但對視覺品質的影響極小。系統會自動觸發無損壓縮模式。
範圍介於
0
(預先處理量最大) 至100
(不預先處理, )。一般值約為60
。請注意,使用-q 100
時會有損失 有時候能帶來更好的成果 -q float
指定
0
和100
之間的 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
指定一組預先定義的參數,以配合特定類型的來源素材。可能的值包括:
default
、photo
、picture
、drawing
,icon
,text
。因為
-preset
會覆寫其他參數的的值 (-q
除外 此選項最好按照 引數。-m int
指定要使用的壓縮方法。這個參數可控制編碼速度與壓縮檔案大小和品質之間的取捨。可能的值介於
0
到6
之間。預設值為4
。使用較高的值時,編碼器會花更多時間檢查其他編碼可能性,並決定品質增益。值越低,處理時間越快,但檔案大小會變大,壓縮品質也會降低。-crop x_position y_position width height
將來源裁剪為矩形,左上角座標為 (
x_position
,y_position
),大小為width
xheight
。這個裁剪方式 區域必須完全包含在來源矩形中。注意:裁剪範圍 會在任何縮放「之前」套用。-resize width height
將來源大小調整為
width
xheight
的矩形。如果有 (但並非兩者) 的寬度或高度參數都是0
,這個值會是 計算方法是保留長寬比注意:系統會在裁剪後套用縮放。-mt
盡可能使用多執行緒進行編碼。
-low_memory
將壓縮後的檔案大小減少四倍,降低有損編碼的記憶體用量 大小 (通常)。這會導致編碼速度變慢,且輸出內容的大小和失真程度略有不同。這個標記只適用於 方法 3 以上,且預設為關閉。請注意,如果將這個標記保持停用 會有部分副作用:這會強制使用特定位元流 例如分區數量 (強制為
1
) 等功能。請注意 使用本例時,cwebp
會列印位元流大小的詳細報告 如果有需要 SQL 指令的分析工作負載 則 BigQuery 可能是最佳選擇
有損選項
這些選項僅在進行有損編碼 (預設,含或不含 alpha) 時有效。
-size int
- 請指定目標大小 (以位元組為單位),以便嘗試達到壓縮輸出結果。這個壓縮器會對
以盡可能接近目標位置如果同時使用
-size
和-psnr
,系統會採用-size
的值。 -psnr float
- 指定目標 PSNR (以分貝為單位),以便嘗試達到壓縮輸出值。壓縮器會進行數次部分編碼傳遞
盡可能達成目標如果同時使用
-size
和-psnr
,-size
值會優先採用。 -pass int
- 設定在選項
-size
或-psnr
使用的二元法中使用的傳遞次數上限。最大值為10
,預設值為1
。如果使用-size
或-psnr
選項,但未指定-pass
,系統會使用預設值「6」的通行證。如果指定-pass
,但未指定-size
或-psnr
,系統會使用 40dB 的目標 PSNR。 -af
- 開啟自動篩選器。這個演算法會花更多時間最佳化篩選強度,以達到平衡的品質。
-jpeg_like
- 變更內部參數對應,讓其與預期大小相符
JPEG 壓縮檔。這個旗標通常會產生
大小類似 JPEG 檔案 (相同的
-q
設定),但 減少影像失真現象
進階選項:
-f int
- 指定取消封鎖濾鏡的強度 (介於
0
之間 (無篩選)) 和100
(最大篩選)。將值設為0
會停用任何篩選功能。 值越高,在解碼相片後套用的篩選程序強度就會越高。值越大,畫面越平順 會出現。一般值通常介於20
到50
之間。 -sharpness int
- 指定篩選的銳利度 (如有)。範圍為
0
(最高) 到7
(尖銳度最低)。預設值為0
。 -strong
- 採用高強度篩選功能 (如果因為
-f
而使用篩選功能) 選項)。高強度篩選功能預設為開啟。 -nostrong
- 停用高強度篩選功能 (如果因為
-f
而使用篩選功能) 選項),並改用簡單的篩選功能。 -sharp_yuv
- 使用更精確且更清晰的 RGB 至 YUV 轉換。請注意,這個程序比預設的「快速」RGB 至 YUV 轉換程序還要慢。
-sns int
- 指定空間雜訊形狀的振幅。空間雜訊形狀
(簡稱「sns」) 是指一般的內建演算法集合
用於決定圖片中應使用較少位元、
以及哪些地方可以更妥善傳輸這些位元可能範圍是
0
(演算法已關閉) 至100
(最高效果)。預設值為50
。 -segments int
- 變更在 sns 演算法區隔期間要使用的分區數量。區隔必須介於
1
到4
之間。預設值為4
。 這個選項對方法 3 以上版本沒有作用,除非-low_memory
是 使用方式 -partition_limit int
- 限制部分巨集區使用的位元數,以降低品質。範圍為
0
(無降級,預設值) 到100
(完全降級)。對於中等大小的圖片,通常會使用30
到70
之間的值。在 VP8 格式中,所謂的控制區段限制為 512k,用於儲存下列資訊:是否略過區塊、區塊所屬的區段、是否以內部 4x4 或內部 16x16 模式編碼,以及最後要為每個子區塊使用的預測模式。對於超大型圖片,512k 只會為每個 16x16 宏區塊留出幾個位元空間。每個巨集區塊的絕對下限為 4 位元。略過, 區隔和模式資訊幾乎佔了這 4 位元 (不過 則不可能),這對超大型圖片而言是問題。partition_limit
係數會控制最耗用位元模式 (內 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 對應編碼資訊。可能的地圖值範圍從
1
到6
。這只是為了協助偵錯。
其他選項
其他進階選項如下:
-s width height
- 指定輸入檔案實際上是由原始 Y'CbCr 範例組成
遵循 ITU-R BT.601 建議的 4:2:0 線性格式亮度平面大小為
width
xheight
。 -pre int
- 指定一些預先處理步驟,如果使用
2
的值會觸發 在 RGBA 至 YUVA 轉換期間,具有品質依賴性偽隨機性的做法 (僅限高失真壓縮)。 -alpha_filter string
- 指定 Alpha 平面的預測篩選方法。
none
、fast
或best
之一,依複雜度和速度由高至低排序。預設值為fast
。在內部,系統會使用四種可能的預測方式 (無、水平、垂直、漸層) 執行 Alpha 篩選。best
模式會依序嘗試每個模式,然後挑選出較小的模式。fast
模式只會嘗試形成優先排序猜測,但 測試所有模式。 -alpha_method int
- 指定 Alpha 壓縮使用的演算法:
0
或1
。演算法0
表示不壓縮,1
會使用 WebP 無損格式壓縮。 預設為1
。 -exact
- 在透明區域內保留 RGB 值。預設設定為關閉,以便提供協助 壓縮率
-blend_alpha int
- 這個選項會使用以十六進位指定的背景顏色 0xrrggbb,將 Alpha 管道 (如有) 與來源混合。接著,alpha 通道會重設為不透明值
255
。 -noalpha
- 使用這個選項會捨棄 alpha 通道。
-hint string
- 指定輸入圖片類型的提示。可能的值包括:
photo
、picture
或graph
。 -metadata string
出現下列情況時,要從輸入複製到輸出內容的中繼資料清單 (以半形逗號分隔) 。有效值:
all
、none
、exif
、icc
、xmp
。預設值為none
。請注意,每種輸入格式可能不支援所有組合。
-noasm
停用所有組合最佳化功能。
錯誤
請將所有錯誤回報至 Issue Tracker:https://issues.webmproject.org
歡迎提供修補程式!請參閱這個頁面開始著手:https://www.webmproject.org/code/contribute/submitting-patches/
範例
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
作者
cwebp
是 libwebp
的一部分,由 WebP 團隊撰寫。
最新原始碼樹狀結構位於
https://chromium.googlesource.com/webm/libwebp/
本手冊頁面是為 Debian 專案編寫 (其他人也可能使用)。