国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

ImageMagick怎么用 ImageMagick命令行代碼使用教程

2024-04-25 20:47:24
字體:
來源:轉載
供稿:網友

ImageMagick是一個免費的創建、編輯、合成圖片的軟件。它可以讀取、轉換、寫入多種格式的圖片。圖片切割、顏色替換、各種效果的應用,圖片的旋轉、組合,文本,直線,多邊形,橢圓,曲線,附加到圖片伸展旋轉。其全部源碼開放,可以自由使用,復制,修改,發布。它遵守GPL許可協議。它可以運行于大多數的操作系統。 最為重要的是,ImageMagick的大多數功能的使用都來源于命令行工具。

ImageMagick還有一個小工具identify,它可以用來顯示一個圖片文件的詳悉信息,比如格式、分辨率、大小、色深等等,你都可用它來幫你的忙。

convert 轉換圖像格式和大小,模糊,裁剪,驅除污點,抖動,臨近,圖片上畫圖片,加入新圖片,生成縮略圖等。

identify 描述一個或較多圖像文件的格式和特性

composite 根據一個圖片或多個圖片組合生成圖片

舉個例子

convert +profile '*' [src]{file}.{ext} -quality 80 -resize '280x140^>' -gravity Center -crop 280x140+0+0 +repage [out]{file}_280x140.{ext}

把一張圖片按80的質量去壓縮(jpg的壓縮參數),同時按圖片比例非強制縮放成不超過280x140的圖片.居中裁剪280x140,去掉圖片裁減后的空白和圖片exif信息,通常這種指令是為了保證圖片大小正好為280x140

下面對各個指令的含義簡要說明

-quality   圖片質量,jpg默認99,png默認75

-resize

100x100      高度和寬度比例保留最高值,高比不變

100x100^     高度和寬度比例保留最低值,寬高比不變

100x100!      寬度和高度強制轉換,忽視寬高比

100x100>     更改長寬,當圖片長或寬超過規定的尺寸

100x100<     更改長寬 只有當圖片長寬都超過規定的尺寸

100x100^>   更改長寬,當圖片長或寬超過規定的尺寸。高度和寬度比例保留最低值

100x100^<   更改長寬,只有當圖片長寬都超過規定的尺寸。高度和寬度比例保留最低值

100             按指定的寬度縮放,保持寬高比例

 x100          按指定高度縮放,保持寬高比

 

-gravity NorthWest, North, NorthEast, West, Center, East,  SouthWest, South, SouthEast截取用的定位指令,定位截取區域在圖片中的方位

 

-crop 200x200+0+0 截取用的截取指令 ,在用定位指令后,按后兩位的偏移值偏移截取范圍左上角的像素后,再按前兩位的數值,從左上角開始截取相應大小的圖片

 

+repage 去掉圖片裁減后的空白


-dissolve 30 設定組合圖片透明度dissolve示例


+/-profile * 去掉/添加圖片exif信息

下面記錄下一些比較復雜一點的指令:

convert +profile '*' [src]{file}.{ext} -quality 90 -resize '700>' /data/tony/watermark_1.png -gravity southeast -compose Dissolve -composite [out]{file}_1024x1024.{ext}

convert +profile '*' [src]{file}.{ext} /data/watermark_1.png -gravity southeast -geometry +10+10 -composite [src]{file}.{ext}

convert +profile '*' [src]{file}.{ext} -coalesce -resize '950x135>' [out]{file}_950x135.{ext}

convert +profile '*' [src]{file}.{ext} -resize '650x500>' miff:- | composite +profile '*' -dissolve 30 -gravity southeast /data/tony/watermark_1.png - [out]{file}_650x500.{ext}

convert [src]{file}.{ext} -quality 80 -resize '190>' -background white -gravity center -extent 190x +repage [out]{file}_width190.{ext}

【/bin/sh^M: bad interpreter: 沒有那個文件或目錄】
vim filename 
然后用命令 
:set ff? #可以看到dos或unix的字樣. 如果的確是dos格式的。 
然后用 
:set ff=unix #把它強制為unix格式的, 然后存盤退出。

 

convert功能強大,用來批處理圖片的放大、縮小、裁剪、旋轉、合并、水印、拼接、&#26684;式轉換等都非常方便,特別適合后臺的圖片處理。

1,獲取圖片信息

 

$identify image.pngimage.png PNG 559x559 559x559+0+0 8-bit sRGB 467KB 0.000u 0:00.008

 

如果只需要獲取寬高:

 

$identify -format "%wx%h" image.png

 

2,放大,縮小 -resize

 

$convert image.png -resize 200x200 resize.png

 

>

也可以按照比例(縮小一半):

 

 

$convert image.png -resize 50% resize.png

 

還可以多次縮放(先縮小一半,再放大一倍,效果就是變模糊了):

 

$convert image.png -resize 50%  -resize 200%  resize.png

 

3,放大,縮小 -sample

與resize的區別在于-sample只進行了采樣,沒有進行插&#20540;,所以用來生成縮略圖最合適

 

$convert image.png -sample 50% sample.png

 

 

這個處理的效果就是馬賽克:

 

 

$convert image.png -sample 10% -sample 1000% sample.png

 

 

4,裁剪 -crop

從(50,50)位置開始,裁剪一個100X100大小的圖片:

 

 

$convert image.png -crop 100x100+50+50 crop.png

 

 

如果不指定位置,則按照這個大小分隔出小圖片,這個命令生成crop-0.png,crop-1.png,crop-2.png……:

 

 

$convert image.png -crop 100x100 crop.png

 

 

可以指定裁剪位置的相對位置 -gravity:

 

 

$convert image.png -gravity northeast -crop 100x100+0+0 crop.png

 

 

-gravity即指定坐標原點,有northwest:左上角,north:上邊中間,northeast:右上角,east:右邊中間……

5,旋轉 -rotate

 

 

$convert image.png -rotate 45 rotate.png

 

 

默認的背景為白色,我們可以指定背景色:

 

 

$convert image.png -backround black -rotate 45 rotate.png$convert image.png -background #000000 -rotate 45 rotate.png

 

 

還可以指定為透明背景色:

 

 

$convert image.png -background rgba(0,0,0,0) -rotate 45 rotate.png

 

 

6,合并

合并指的是將一張圖片覆蓋到一個背景圖片上:

 

 

$convert image.png -compose over overlay.png -composite newimage.png

 

 

-compose指定覆蓋操作的類型,其中over為安全覆蓋,另外還有xor、in、out、atop等等

覆蓋的位置可以通過-gravity指定:

 

 

$convert image.png -gravity southeast -compose over overlay.png -composite newimage.png

 

 

這是將圖片覆蓋到底圖的右下角。

7,更改圖片的alpha通道

分兩步:

 

 

$convert image.png -define png:format=png32  image32.png$convert image32.png -channel alpha -fx "0.5" imagealpha.png

 

 

這個命令首先將image.png的&#26684;式改為png32(確保有alpha通道),然后更改alpha通道置為0.5,也就是半透明,&#20540;的范圍為0到1.0

可以使用將一張透明圖片覆蓋到原圖上的方式做水印圖片:

 

 

$convert image.png -gravity center -compose over overlay.png -composite newimage.png$convert image.png -gravity southeast -compose over overlay.png -composite newimage.png

 

 

8,拼接

橫向拼接(&#43;append),下對齊(-gravity south):

 

 

$convert image1.png image2.png image3.png -gravity south +append result.png

 

 

縱向拼接(-append),右對齊(-gravity east):

 

$convert image1.png image2.png image3.png -gravity east -append result.png

 

 

9,&#26684;式轉換

 

 

$convert image.png image.jpg$convert image.png -define png:format=png32 newimage.png

 

 

10,文字注釋

 

$convert image.png -draw "text 0,20 'some text'" newimage.png

 

從文件text.txt中讀取文字,指定顏色,字體,大小,位置:

 

$convert source.jpg -font xxx.ttf -fill red -pointsize 48 -annotate +50+50 @text.txt result.jpg

 

11,去掉邊框

$convert image.png -trim -fuzz 10% newimage.png


注:相關教程知識閱讀請移步到建站經驗頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拉萨市| 高雄市| 水富县| 太和县| 文昌市| 永顺县| 闽清县| 吉林市| 石屏县| 华蓥市| 温泉县| 建德市| 青神县| 长沙市| 渭源县| 宁晋县| 望都县| 宁陕县| 视频| 库车县| 牟定县| 宜昌市| 四会市| 桑植县| 含山县| 靖西县| 翁源县| 弋阳县| 富蕴县| 威远县| 湟中县| 沂南县| 修文县| 和林格尔县| 电白县| 兰溪市| 绥阳县| 游戏| 务川| 普陀区| 南宁市|