文檔鏈接
- 官方文檔
https://jcupitt.github.io/libvips/ - command 命令說明
https://jcupitt.github.io/libvips/API/current/using-cli.html - function 列表
https://jcupitt.github.io/libvips/API/current/func-list.html#function-list
command
# 列出所有commands
$ vips -l
# 列出某個command 的參數,只要輸入空參數就可以了,如:
$ vips thumbnail
# 注意參數類型有兩種,other arguments 的使用要這樣:
vips thumbnail 1.jpg 2.jpg 100 --height=200 --size=force
# 這些參數是可以和C 的函數對應起來的
# 使用 vips thumbnail 列出可以用參數時,同時會看的default value和allow value
# 數組參數
$ vips affine k2.jpg x.jpg "2 0 0 1"
# []
vips affine k2.jpg x.jpg[Q=90,strip] "2 0 0 1"
# 用.v 文件存儲中間結果
$ vips invert input.jpg t1.v
$ vips affine t1.v output.jpg "2 0 0 1"
$ rm t1.v
# 一些extra option,比如 --vips-progress 可以顯示處理的進度
vips thumbnail 1.jpg 3.jpg 500 --height=800 --crop=attention --vips-progress
thumbnail 和resize
thumbnail 支持指定大小的拉伸,裁剪
resize 需指定水平的scale 和 垂直的vscale,vscale 可選,如何不考慮具體實現方法的話,感覺效果和 thumbnail --size=force 相同
vips thumbnail 1.jpg 2.jpg 100 --height=200 --size=force
- 如果沒有 --size=force ,則只會根據比例縮放
- crop 和 --size=force 不能同時用
- crop 在輸出的比例和原圖比例不同時,只支持裁剪就如同文檔中說的
crop - Reduce to fill target rectangle, then crop, input VipsInteresting
default: none
allowed: none, centre, entropy, attention
embed 和 gravity 用來放大圖片
embed 邊緣填充圖像
if (vips_embed (in, &out, x, y, width, height,
"extend", VIPS_EXTEND_COPY,
NULL))
error_handling();
vips embed test.jpeg test1.jpeg 0 0 800 800 --extend=copy
效果是這樣的:
gravity 的例子
vips gravity test.jpeg tet2.jpeg centre 600 600 --extend=copy
vips gravity test.jpeg tet2.jpeg centre 600 600 --extend=repeat