libvips

文檔鏈接

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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章