轉:
強大的convert命令
convert命令可以用來轉換圖像的格式,支持JPG, BMP, PCX, GIF, PNG, TIFF, XPM和XWD等類型,下面舉幾個例子:
convert xxx.jpg xxx.png 將jpeg轉成png文件
convert xxx.gif xxx.bmp 將gif轉換成bmp圖像
convert xxx.tiff xxx.pcx 將tiff轉換成pcx圖像
還可以改變圖像的大小:
convert -resize 1024x768 xxx.jpg xxx1.jpg 將圖像的像素改為1024*768,注意1024與768之間是小寫字母x
convert -sample 50%x50% xxx.jpg xxx1.jpg 將圖像的縮減為原來的50%*50%
旋轉圖像:
convert -rotate 270 sky.jpg sky-final.jpg 將圖像順時針旋轉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還有其他很多有趣和強大的功能,大家不妨可以試試。
待編輯。。。
幾個簡單的應用。
1、批量圖像格式轉換
如果想將某目錄下的所有jpg文件轉換為png文件,只要在命令行模式下輸入:
for %f in (*.jpg) do convert “%f” “%~nf.png”
2、對所有圖像進行同一操作
譬如,批量生成某目錄下所有PNG圖像文件的縮略圖(大小為80×40):
for %f in (*.png) do convert “%f” -sample 80×40 “%~nf_sample.png”
類似的,將某目錄下所有PNG圖像旋轉90度的操作為:
for %f in (*.png) do convert “%f” -rotate 90 “%~nf_rotate.png”
還可以進行批量裁剪、淡化、抖動、炭化、加邊框、圓角等等一系列操作,具體可參考: 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、在圖像上加上文字說明
如果你有大量圖片需要發布,在所有圖片上加上版權說明是很明智的做法。用ImgeMagick可以很容易的實現:
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
轉換圖像格式和大小,模糊,裁剪,驅除污點,抖動,臨近,圖片上畫圖片,加入新圖片,生成縮略圖等。
identify
描述一個或較多圖像文件的格式和特性。
mogrify
按規定尺寸制作一個圖像,模糊,裁剪,抖動等。Mogrify改寫最初的圖像文件然后寫到一個不同的圖像文件。
composite
根據一個圖片或多個圖片組合生成圖片。
montage
創建一些分開的要素圖像。在含有要素圖像任意的裝飾圖片,如邊框、結構、圖片名稱等。
compare
在算術上和視覺上評估不同的圖片及其它的改造圖片。
display
如果你擁有一個X server的系統,它可以按次序的顯示圖片
animate
利用X server顯示動畫圖片
import
在X server或任何可見的窗口上輸出圖片文件。 你可以捕獲單一窗口,整個的熒屏或任何熒屏的矩形部分。
conjure
解釋執行 MSL (Magick Scripting Language) 寫的腳本。
convert -sample 100×20 input.jpg output.jpg
上述命令生成一個100×20的縮略圖
更好的方法是用等比例縮放,像這樣,統一生成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 加注字體大小,像素數,
-draw 是用來畫,這里是文字,下面的位置10,10 是以圖片左上角為原點坐標的
向圖像添加文本注釋
有時您需要向圖像添加文本注釋。例如,假設您的公司擁有標准的名片圖像,並希望在將名片發送到打印機之前將每個雇員的詳細信息都添加到名片上面。另一個示例是為通過您網站上的在線課程的用戶生成表示證書(presentation certificate)。
您可以使用下列命令行,為該圖注釋一些標識信息:
convert -font helvetica -fill white -pointsize 36
-draw ‘text 10,50 “Floriade 2002, Canberra, Australia”’
floriade.jpg comment.jpg
迄今為止,這是我在本文中所展示的最復雜的 convert 命令行了,因此我將花些時間來解釋它。
-font helvetica 將注釋的字體設置為 Helvetica。也可以在此處指定字體文件的路徑。這個示例給圖像添加了標記,這樣未經許可其它網站就不能再使用該圖像了,但它是使用位於非標准位置的字體來完成該任務的:
convert -font fonts/1900805.ttf -fill white -pointsize 36
-draw ‘text 10,475 “stillhq.com”’
floriade.jpg stillhq.jpg
-fill white 用白色而不是標准的黑色來填充字母。
-pointsize 36 以點為單位指定字母的大小。一英寸等於 72 點。
-draw ‘text 10,50 “…”’ 是一組繪圖命令,在本例中是移動到位置 10, 50,然后繪制出雙引號中的文本。使用單引號是因為如果需要繪制多個字,則繪圖命令中需要使用雙引號,而您不能在雙引號中再用雙引號。
在一次 ImageMagick 調用中執行多條命令
您已經看到了將命令與注釋示例聯系起來的示例。但是,可以將本文中提到的任意 ImageMagick 命令鏈接起來。例如,也許我們希望制作某圖像的縮略圖,然后對它應用發散。在發散發生之后,我們將應用炭筆效果:
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
以上命令分別用-,+邊緣顏色的來達到處理邊緣的效果!
convert -bordercolor red -border 5×5 input.jpg output.jpg
簡單的加上5個像素寬的紅邊!
convertconvert顧名思義就是對圖像進行轉化,它主要用來對圖像進行格式的轉化,同時還可以做縮放、剪切、模糊、反轉等操作。
格式轉化比如把 foo.jpg 轉化為 foo.png:
convert foo.jpg foo.png如果要想把目錄下所有的jpg文件都轉化為gif,我們可借助於shell的強大功能:
find ./ -name "*.jpg" -exec convert {} {}.gif \;轉化后的gif名稱為 *.jpg.gif ,這樣看起來不太自然,沒關系,我們可以再來一步:
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文件轉化為png格式。convert還可以把多張照片轉化成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 參數,比如某位同志犧牲了,我們需要為他做一張黑邊框的遺像,可以這樣:
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參數。
模糊高斯模糊:
convert -blur 80 foo.jpg foo.png-blur參數還可以這樣-blur 80×5。后面的那個5表示的是Sigma的值,這個是圖像術語,我也不太清楚,總之,它的值對模糊的效果起關鍵的作用。
翻轉上下翻轉:
convert -flip foo.png bar.png左右翻轉:
convert -flop foo.png bar.png反色形成底片的樣子:
convert -negate foo.png bar.png單色把圖片變為黑白顏色:
convert -monochrome foo.png bar.png加噪聲
convert -noise 3 foo.png bar.png油畫效果我們可用這個功能,把一張普通的圖片,變成一張油畫,效果非常的逼真
convert -paint 4 foo.png bar.png旋轉把一張圖片,旋轉一定的角度:
convert -rotate 30 foo.png bar.png上面的30,表示向右旋轉30度,如果要向左旋轉,度數就是負數。
炭筆效果
convert -charcoal 2 foo.png bar.png形成炭筆或者說是鉛筆畫的效果。
散射毛玻璃效果:
convert -spread 30 foo.png bar.png漩渦以圖片的中心作為參照,把圖片扭轉,形成漩渦的效果:
convert -swirl 67 foo.png bar.png凸起效果用-raise來創建凸邊:
convert -raise 5x5 foo.png bar.png執行后,你會看到,照片的四周會一個5×5的邊,如果你要一個凹下去的邊,把-raise改為+raise就可以了。其實凸邊和凹邊看起來區別並不是很大。
其他其他功能都是不太常用的,如果你感興趣的話,可以看它的聯機文檔
importimport是一個用於屏幕截圖的組件,下面列出的是我們常用的功能,其他的功能,你參考它的man好了。
截取屏幕的任一矩形區域
import foo.png在輸入上述的命令后,你的鼠標會變成一個十字,這個時候,你只要在想要截取的地方划一個矩形就可以了
截取程序的窗口
import -pause 3 -frame foo.png回車后,用鼠標在你想截的窗口上點一下即可。參數-frame的作用是告訴import,截圖的時候把目標窗口的外框架帶上,參數 -pause的作用很重要,你可以試着把它去掉,對比一下,你會發現,目標窗口的標題欄是灰色的,pause就是讓import稍微延遲一下,等你的目標窗口獲得焦點了,才開始截圖,這樣的圖才比較自然。
截取一個傾斜的窗口如果想讓你的截圖比較cool,你可以把截取一個傾斜的窗口,方法如下:
import -rotate 30 -pause 3 -frame foo.png截取整個屏幕
import -pause 3 -window root screen.png注意,暫停了3秒鍾,你需要在3秒鍾內切換到需要截取的畫面噢。
displaydisplay應該是我們使用的最為頻繁的圖像處理軟件了,畢竟,還是看的多
顯示圖片
display foo.png如果你要顯示多個文件,你可以使用通配符
display *.png幻燈片
display -delay 5 *每隔5個百分之秒顯示一張圖片
一些快捷鍵
space(空格): 顯示下一張圖片
backspace(回刪鍵):顯示上一張圖片
h: 水平翻轉
v: 垂直翻轉
/:順時針旋轉90度
\:逆時針旋轉90度
>: 放大
<: 縮小
F7:模糊圖片
Alt+s:把圖片中間的像素旋轉
Ctrl+s:圖象另存
Ctrl+d:刪除圖片
q: 退出