Linux之convert命令【转】
本文轉(zhuǎn)載自:http://zlb1986.iteye.com/blog/778054
轉(zhuǎn)載:?
強(qiáng)大的convert命令?
convert命令可以用來轉(zhuǎn)換圖像的格式,支持JPG, BMP, PCX, GIF, PNG, TIFF, XPM和XWD等類型,下面舉幾個例子:?
? convert? xxx.jpg? xxx.png?? 將jpeg轉(zhuǎn)成png文件?
? convert? xxx.gif?? xxx.bmp? 將gif轉(zhuǎn)換成bmp圖像?
? convert? xxx.tiff??? xxx.pcx?? 將tiff轉(zhuǎn)換成pcx圖像?
還可以改變圖像的大小:?
? convert -resize 1024x768? xxx.jpg?? xxx1.jpg??? 將圖像的像素改為1024*768,注意1024與768之間是小寫字母x?
? convert -sample 50%x50%? xxx.jpg? xxx1.jpg?? 將圖像的縮減為原來的50%*50%?
旋轉(zhuǎn)圖像:?
convert -rotate 270 sky.jpg sky-final.jpg????? 將圖像順時針旋轉(zhuǎn)270度?
使用-draw選項還可以在圖像里面添加文字:?
convert -fill black -pointsize 60 -font helvetica -draw 'text 10,80 "Hello, World!" ‘? hello.jpg? helloworld.jpg?
在圖像的10,80 位置采用60磅的全黑Helvetica字體寫上 Hello, World!?
convert還有其他很多有趣和強(qiáng)大的功能,大家不妨可以試試。?
待編輯。。。?
幾個簡單的應(yīng)用。?
1、批量圖像格式轉(zhuǎn)換?
如果想將某目錄下的所有jpg文件轉(zhuǎn)換為png文件,只要在命令行模式下輸入:?
for %f in (*.jpg) do convert “%f” “%~nf.png”?
2、對所有圖像進(jìn)行同一操作?
譬如,批量生成某目錄下所有PNG圖像文件的縮略圖(大小為80×40):?
for %f in (*.png) do convert “%f” -sample 80×40 “%~nf_sample.png”?
類似的,將某目錄下所有PNG圖像旋轉(zhuǎn)90度的操作為:?
for %f in (*.png) do convert “%f” -rotate 90 “%~nf_rotate.png”?
還可以進(jìn)行批量裁剪、淡化、抖動、炭化、加邊框、圓角等等一系列操作,具體可參考: linux/l-graf/index.html">http://www.ibm.com/developerworks/cn/linux/l-graf/index.html?
http://linux.chinaunix.net/docs/2006-12-15/3481.shtml?
3、在圖像上加上文字說明?
如果你有大量圖片需要發(fā)布,在所有圖片上加上版權(quán)說明是很明智的做法。用ImgeMagick可以很容易的實現(xiàn):?
convert 1.png -fill white -pointsize 13 -draw “text 10,15 ‘lifesinger 2006'” 2.png?
可以用-font指定字體,這時需要安裝Ghostscript支持: http://www.cs.wisc.edu/~ghost/?
還可以用composite命令在所有圖片上加上水印,有興趣的看這里:?
http://www.imagemagick.org/script/composite.php?
—————————————————————————————————————————–?
convert?
轉(zhuǎn)換圖像格式和大小,模糊,裁剪,驅(qū)除污點,抖動,臨近,圖片上畫圖片,加入新圖片,生成縮略圖等。?
identify?
描述一個或較多圖像文件的格式和特性。?
mogrify?
按規(guī)定尺寸制作一個圖像,模糊,裁剪,抖動等。Mogrify改寫最初的圖像文件然后寫到一個不同的圖像文件。?
composite?
根據(jù)一個圖片或多個圖片組合生成圖片。?
montage?
創(chuàng)建一些分開的要素圖像。在含有要素圖像任意的裝飾圖片,如邊框、結(jié)構(gòu)、圖片名稱等。?
compare?
在算術(shù)上和視覺上評估不同的圖片及其它的改造圖片。?
display?
如果你擁有一個X server的系統(tǒng),它可以按次序的顯示圖片?
animate?
利用X server顯示動畫圖片?
import?
在X server或任何可見的窗口上輸出圖片文件。 你可以捕獲單一窗口,整個的熒屏或任何熒屏的矩形部分。?
conjure?
解釋執(zhí)行 MSL (Magick Scripting Language) 寫的腳本。?
convert -sample 100×20 input.jpg output.jpg?
上述命令生成一個100×20的縮略圖?
更好的方法是用等比例縮放,像這樣,統(tǒng)一生成1/4的縮略圖?
convert -sample 25%x25% input.jpg output.jpg?
如果寫成腳本,就是像這個樣子?
for img in `ls *.jpg`?
do?
convert -sample 25%x25% ${img} thm${img}?
done?
加注圖片?
convert -font fonts/font.ttf -stroke color -fill color -pointsize size?
-draw ‘text 10,10 “String”‘ input.jpg output.jpg?
-font 指定字體,因為這樣我加注文字,?
-stroke 描邊用的顏色,?
-fill 填充用的顏色,這里用none就可以畫出空心字了,?
-pointsize 加注字體大小,像素數(shù),?
-draw 是用來畫,這里是文字,下面的位置10,10 是以圖片左上角為原點坐標(biāo)的?
向圖像添加文本注釋?
有時您需要向圖像添加文本注釋。例如,假設(shè)您的公司擁有標(biāo)準(zhǔn)的名片圖像,并希望在將名片發(fā)送到打印機(jī)之前將每個雇員的詳細(xì)信息都添加到名片上面。另一個示例是為通過您網(wǎng)站上的在線課程的用戶生成表示證書(presentation certificate)。?
您可以使用下列命令行,為該圖注釋一些標(biāo)識信息:?
convert -font helvetica -fill white -pointsize 36?
-draw ‘text 10,50 “Floriade 2002, Canberra, Australia”’?
floriade.jpg comment.jpg?
迄今為止,這是我在本文中所展示的最復(fù)雜的 convert 命令行了,因此我將花些時間來解釋它。?
-font helvetica 將注釋的字體設(shè)置為 Helvetica。也可以在此處指定字體文件的路徑。這個示例給圖像添加了標(biāo)記,這樣未經(jīng)許可其它網(wǎng)站就不能再使用該圖像了,但它是使用位于非標(biāo)準(zhǔn)位置的字體來完成該任務(wù)的:?
convert -font fonts/1900805.ttf -fill white -pointsize 36?
-draw ‘text 10,475 “stillhq.com”’?
floriade.jpg stillhq.jpg?
-fill white 用白色而不是標(biāo)準(zhǔn)的黑色來填充字母。?
-pointsize 36 以點為單位指定字母的大小。一英寸等于 72 點。?
-draw ‘text 10,50 “…”’ 是一組繪圖命令,在本例中是移動到位置 10, 50,然后繪制出雙引號中的文本。使用單引號是因為如果需要繪制多個字,則繪圖命令中需要使用雙引號,而您不能在雙引號中再用雙引號。?
在一次 ImageMagick 調(diào)用中執(zhí)行多條命令?
您已經(jīng)看到了將命令與注釋示例聯(lián)系起來的示例。但是,可以將本文中提到的任意 ImageMagick 命令鏈接起來。例如,也許我們希望制作某圖像的縮略圖,然后對它應(yīng)用發(fā)散。在發(fā)散發(fā)生之后,我們將應(yīng)用炭筆效果:?
convert -sample 25%x25% -spread 4?
-charcoal 4 input.jpg output.jpg?
用convert給圖片加邊框?
convert -raise 5×5 input.jpg output.jpg?
convert +raise 5×5 input.jpg output.jpg?
以上命令分別用-,+邊緣顏色的來達(dá)到處理邊緣的效果!?
convert -bordercolor red -border 5×5 input.jpg output.jpg?
簡單的加上5個像素寬的紅邊!?
convertconvert顧名思義就是對圖像進(jìn)行轉(zhuǎn)化,它主要用來對圖像進(jìn)行格式的轉(zhuǎn)化,同時還可以做縮放、剪切、模糊、反轉(zhuǎn)等操作。?
格式轉(zhuǎn)化比如把 foo.jpg 轉(zhuǎn)化為 foo.png:?
convert foo.jpg foo.png如果要想把目錄下所有的jpg文件都轉(zhuǎn)化為gif,我們可借助于shell的強(qiáng)大功能:?
find ./ -name "*.jpg" -exec convert {} {}.gif \;轉(zhuǎn)化后的gif名稱為 *.jpg.gif ,這樣看起來不太自然,沒關(guān)系,我們可以再來一步:?
rename .jpg.gif .gif *.jpg.gif本來,我想在find的時候,用basename來取得不帶后綴的文件名的,這樣就不會形成.jpg.gif這種丑陋的名子了,可是不知道為什么,就是不行,如果你知道的話,告訴我或者,你也可用shell script來完成上述的操作:?
for i in *.jpg?
do?
convert $i `basename $i .jpg`.gif?
done我們還可用mogrify來完成同樣的效果:?
mogrify -format png *.jpg上面命令將會把目錄下面所有的jpg文件轉(zhuǎn)化為png格式。convert還可以把多張照片轉(zhuǎn)化成pdf格式:?
convert *.jpg foo.pdf大小縮放比如我們要為一個普通大小的圖片做一個縮略圖,我們可以這樣?
convert -resize 100x100 foo.jpg thumbnail.jpg你也可以用百分比,這樣顯的更為直觀:?
convert -resize 50%x50% foo.jpg thumbnail.jpgconvert會自動地考慮在縮放圖像大小時圖像的高寬的比例,也就是說著新的圖像的高寬比與原圖相同。我們還可以批量生成縮略圖:?
mogrify -sample 80x60 *.jpg注意,這個命令會覆蓋原來的圖片,不過你可以在操作前,先把你的圖片備份一下。?
加邊框在一張照片的四周加上邊框,可以用 -mattecolor 參數(shù),比如某位同志犧牲了,我們需要為他做一張黑邊框的遺像,可以這樣:?
convert -mattecolor "#000000" -frame 60x60 yourname.jpg rememberyou.png其中,”#000000″是邊框的顏色,邊框的大小為60×60你也可以這樣加邊框:?
convert -border 60x60 -bordercolor "#000000" yourname.jpg rememberyou.png在圖片上加文字?
convert -fill green -pointsize 40 -draw 'text 10,50 "charry.org"' foo.png bar.png上面的命令在距離圖片的左上角10×50的位置,用綠色的字寫下charry.org,如果你要指定別的字體,可以用-font參數(shù)。?
模糊高斯模糊:?
convert -blur 80 foo.jpg foo.png-blur參數(shù)還可以這樣-blur 80×5。后面的那個5表示的是Sigma的值,這個是圖像術(shù)語,我也不太清楚,總之,它的值對模糊的效果起關(guān)鍵的作用。?
翻轉(zhuǎn)上下翻轉(zhuǎn):?
convert -flip foo.png bar.png左右翻轉(zhuǎn):?
convert -flop foo.png bar.png反色形成底片的樣子:?
convert -negate foo.png bar.png單色把圖片變?yōu)楹诎最伾?#xff1a;?
convert -monochrome foo.png bar.png加噪聲?
convert -noise 3 foo.png bar.png油畫效果我們可用這個功能,把一張普通的圖片,變成一張油畫,效果非常的逼真?
convert -paint 4 foo.png bar.png旋轉(zhuǎn)把一張圖片,旋轉(zhuǎn)一定的角度:?
convert -rotate 30 foo.png bar.png上面的30,表示向右旋轉(zhuǎn)30度,如果要向左旋轉(zhuǎn),度數(shù)就是負(fù)數(shù)。?
炭筆效果?
convert -charcoal 2 foo.png bar.png形成炭筆或者說是鉛筆畫的效果。?
散射毛玻璃效果:?
convert -spread 30 foo.png bar.png漩渦以圖片的中心作為參照,把圖片扭轉(zhuǎn),形成漩渦的效果:?
convert -swirl 67 foo.png bar.png凸起效果用-raise來創(chuàng)建凸邊:?
convert -raise 5x5 foo.png bar.png執(zhí)行后,你會看到,照片的四周會一個5×5的邊,如果你要一個凹下去的邊,把-raise改為+raise就可以了。其實凸邊和凹邊看起來區(qū)別并不是很大。?
其他其他功能都是不太常用的,如果你感興趣的話,可以看它的聯(lián)機(jī)文檔?
importimport是一個用于屏幕截圖的組件,下面列出的是我們常用的功能,其他的功能,你參考它的man好了。?
截取屏幕的任一矩形區(qū)域?
import foo.png在輸入上述的命令后,你的鼠標(biāo)會變成一個十字,這個時候,你只要在想要截取的地方劃一個矩形就可以了?
截取程序的窗口?
import -pause 3 -frame foo.png回車后,用鼠標(biāo)在你想截的窗口上點一下即可。參數(shù)-frame的作用是告訴import,截圖的時候把目標(biāo)窗口的外框架帶上,參數(shù) -pause的作用很重要,你可以試著把它去掉,對比一下,你會發(fā)現(xiàn),目標(biāo)窗口的標(biāo)題欄是灰色的,pause就是讓import稍微延遲一下,等你的目標(biāo)窗口獲得焦點了,才開始截圖,這樣的圖才比較自然。?
截取一個傾斜的窗口如果想讓你的截圖比較cool,你可以把截取一個傾斜的窗口,方法如下:?
import -rotate 30 -pause 3 -frame foo.png截取整個屏幕?
import -pause 3 -window root screen.png注意,暫停了3秒鐘,你需要在3秒鐘內(nèi)切換到需要截取的畫面噢。?
displaydisplay應(yīng)該是我們使用的最為頻繁的圖像處理軟件了,畢竟,還是看的多?
顯示圖片?
display foo.png如果你要顯示多個文件,你可以使用通配符?
display *.png幻燈片?
display -delay 5 *每隔5個百分之秒顯示一張圖片?
一些快捷鍵?
space(空格): 顯示下一張圖片?
backspace(回刪鍵):顯示上一張圖片?
h: 水平翻轉(zhuǎn)?
v: 垂直翻轉(zhuǎn)?
/:順時針旋轉(zhuǎn)90度?
\:逆時針旋轉(zhuǎn)90度?
>: 放大?
<: 縮小?
F7:模糊圖片?
Alt+s:把圖片中間的像素旋轉(zhuǎn)?
Ctrl+s:圖象另存?
Ctrl+d:刪除圖片?
q: 退出
總結(jié)
以上是生活随笔為你收集整理的Linux之convert命令【转】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python刷题记录:买帽子
- 下一篇: 正则表达式查找<em></em>标签选中