名稱
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
指定
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 (以 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
會停用任何篩選功能。 值越大,套用的篩選程序就越難 直到解碼後產生圖片值越大,畫面越平順 會出現。一般值通常介於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
- 變更 SKU 區隔期間要使用的分區數量
演算法。區隔必須介於
1
到4
之間。預設值為4
。 這個選項對方法 3 以上版本沒有作用,除非-low_memory
是 使用方式 -partition_limit int
- 限制某些巨集區塊使用的位元數,藉此降低品質。
範圍是
0
(無降級為預設值) 至100
(完全降級)。 如果圖片過大,在30
到70
的範圍內,實用的值通常為實用值。於 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 對應圖。可能的地圖值
範圍從
1
到6
。僅供偵錯之用。
其他選項
其他進階選項如下:
-s width height
- 指定輸入檔案實際上是由原始 Y'CbCr 範例組成
遵循 ITU-R BT.601 建議的 4:2:0 線性格式
luma 平面的尺寸為
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
- 這個選項會將 Alpha 版 (如果有的話) 和來源
十六進位中指定的背景顏色,以 0xrrggbb 表示。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 專案 (可能會用於 和其他)。