linux convert圖像處理命令

火星人 @ 2014-03-12 , reply:0


  

  
        

       幾個簡單的應用。

  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”

  還可以進行批量裁剪、淡化、抖動、炭化、加邊框、圓角等等一系列操作,具體可參考:      

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: 退出






[火星人 via ] linux convert圖像處理命令已經有267次圍觀

http://www.coctec.com/docs/linux/show-post-65914.html