from:http://community.itbbs.cn/thread/20402/
1.如何用ImageMagic水平或垂直拼接圖片 因為是分片下載的,現在只能用montage拼接圖片列陣,但如何水平拼接一組等高的圖片 或如何垂直拼接一組等寬的圖片呢?
拼圖montage *.jpg -tile 22x2 -geometry 64x256+0+0 10-.jpg
將目錄里的jpg文件按順序拼成x軸22塊,y軸2塊的圖 ,每個圖塊的大小為64X512像素,輸出文件為10-.jpg
你可以把22*2改成你想要得值,例如你形成的圖x軸有50個快,y軸有30個塊,你可以寫成50x30
把你所有要合成的文件拷在一個目錄里,用一個命令就可以合成
2合並圖片
用法:
convert +append 1.jpg 2.jpg 3.jpg .... 0.jpg
把 1.jpg、2.jpg、3.jpg等多張圖片沿“水平方向”( +append)拼成 0.jpg(最后一個文件名是拼出的成品)
convert -append 1.jpg 2.jpg 3.jpg .... 0.jpg
把 1.jpg、2.jpg、3.jpg等多張圖片沿“垂直方向”( -append)拼成 0.jpg(最后一個文件名是拼出的成品)
可以分兩步,第一步把小圖拼成多個水平方向的長條,第二步把長條按垂直方向合並成一個大圖。
3.切割圖片
切割圖片
用法:
convert -crop 128x128 1.jpg 0.jpg
把大圖1.jpg按128x128分割成了多張小圖0-1.jpg 0-2.jpg ...
convert -crop 128x64+6+7 1.jpg 0.jpg
從1.jpg 以座標 6,7 為起點切一片 128x64 的塊生成 0.jpg
3.銳化
ImageMagick 方法:
convert -sharpen 5 0.jpg 1.jpg
將0.jpg 銳化后生成1.jpg,銳化指數5,此數值越大,銳化度越高,圖像細節損失越大
4. 如何讓animate在顯示圖片的過程保持窗口的標題不變?
animate -title "My Image Sequence" images.
5. import抓得的圖片與X服務器上顯示的不一致怎么辦?
import -descend image.miff
6. 如何動畫顯示YUV 圖片序列?
animate -geometry 352x240 -scene 0-71 yuv3:frame%d
7. 如果只看一個RGB圖片的紅色通道(red channel)?
display -gamma 1.0,0.0,0.0 image.miff
8. 如何改變PostScript默認紙張大小?
要改變默認的612x792大小,修改magick/image.h中的PSPageGeometry的值並重編譯.
10. 如何自左至右無邊無框無文字半三幅畫連接在一起?
convert +append image1.ppm image2.ppm image3.ppm side_by_side.miff
或
convert -size 350x500 xc:black composite.miff
composite -geometry +0+0 composite.miff image1.gif composite.miff
composite -geometry +100+0 composite.miff image2.gif composite.miff
composite -geometry +0+300 composite.miff image3.gif composite.miff
composite -geometry +0+375 composite.miff image4.gif composite.miff
11. 如何生成gif動畫?
convert -delay 20 frame*.gif animation.gif
convert -delay 20 frame1.gif -delay 10 frame2.gif -delay 5 frame3.gif animation.gif
convert frame1.gif -page +50+100 frame2.gif -page +0+100 frame3.gif animation.gif
convert -loop 50 frame*.gif animation.gif
convert +adjoin images.* frames%d.gif
12. 如果完整的顯示PostScript圖片?
display -page letter image.ps
13. 什么是圖片目錄?如何使用它們?
圖片目錄(visual image directory ,VID)的創建:
montage *.jpg directory.vid
convert 'vid:*.jpg' directory.vid
顯示圖片目錄
display directory.vid
display vid:movie.mpg
15. 如果帶框架保存一個窗口?
xwininfo -frame
import -frame -window ID window.miff
16. 圖片以單一顏色(a solid color)顯示,是怎么回事?
圖片被破壞,或含有值為0的matte層,試着:
display +matte image.miff
17. 出現 "???? library is not available ..."是怎么回事?
沒安裝相關的函數庫。參見安裝說明。
18. 如何查看圖片不光滑層(matte channel)的值?
convert image.tiff image.matte
display -size 640x480 gray:image.matte
19. 運行"Convert in.gif out.png" 時顯示 "Invalid Parameter - out.png"
你運行的convert是windows的分區類型轉換程序。
20. 如何在圖片增加斜角?
對圖片邊緣的處理共分四類。
1)增加有色邊
convert -bordercolor red -border 25x25 image.jpg image.gif
2)加亮或變暗圖片邊緣,以增強3D效果
convert -raise 25 image.jpg image.gif
3)在圖片周圍增加裝飾性框架。
convert -mattecolor gray -frame 25x25 image.jpg image.gif
4)在圖片邊緣增加升、降斜角
convert -mattecolor gray -frame 25x25+0+25 image.jpg image.gif
convert -mattecolor gray -frame 25x25+25+0 image.jpg image.gif
21. 用窗口管理器運行display失敗了,怎么辦?
用下列命令之一來確認display運行在一個交互環境中:
display logo:Untitled
display < /dev/console
22. 將PostScript文件轉換為其它格式時,如何改善文字的外觀?
convert -density 288 -geometry 25% image.ps image.gif
23. 如何用2-3英寸高的文字注釋一個圖片?
先檢查有無可縮放字體:
xlsfonts -fn '*-0-0-0-0-*'
有則:
convert -font '-*-helvetica-*-*-*--300-300-*-*-*-*-iso8859-1' -fill green -draw 'text 50,300 Magick' image.gif annotated.gif
If you have the FreeType support built into ImageMagick, just increase your pointsize and/or density:
convert -font Helvetica -pointsize 100 -density 300 ...
24. 如何將gif文件分析為一系列的單個圖片?
convert animation.gif frame%02d.gif
25. 用NetScape顯示的圖片,如何去掉周圍的背景色?
對convert用+page參數:
convert +page alpha.gif beta.gif
26. 如何用web安全的顏色(Web safe colors)創建GIF或PNG圖片?
對convert用 -map 參數:
convert -map netscape: alpha.gif beta.gif
27. 為何Adobe Acrobat 2.1不能讀ImageMagick's制作的PDF?
用 Acrobat 3.0或以上版本,來閱讀這種經zip壓縮的pdf,或制作PDF時不進行壓縮。
convert +compress images.tiff image.pdf
28. 如何在圖片上增加一個不光滑層(matte channel)?
convert image.gif -matte temp.miff
composite -compose CopyOpacity mask.xbm temp.miff transparent.gif
29. 在NT環境下如何用convert在圖片上寫字?
convert -font Arial -fill blue -draw "text 10,10 'your text here'" d:test.tif png:d:test.png
convert.exe -pointsize 18 -draw "text 0,0 "This is my text!"" C:blank.gif c:text.gif
30. 為何GIF文件比期望的大?
需要在編譯源碼時加 --enable-lzw 參數,來打開LZW壓縮功能。
31. 為何JPEG文件比期望的大?
可能嵌入Exif或IPTC等"profiles", 或者含有沒壓縮的thumbnails. 可以用命令行參數 +profile "*"或相關的API來將它們去掉。
32. 如何從圖片文件中抽取第一張圖片?
convert "Image.gif[0]" first.gif
33. 如何創建一張空白圖片?
convert -size 800x600 xc:"#ddddff" ltblue.ppm
convert -size 800x600 null:white white.ppm
convert in.png -threshold 100% black.ppm <--與in.png同大小< p="">
34 在一副圖片中裁切其中一部分
convert -crop 20x20+10+10 1.jpg 2.jpg
寬x(英文字母小寫x)高+x值+y值
切出圖片大小范圍 起始xy坐標
35 把圖片縮小到固定大小
convert -resize 20x20 1.jpg 2.jpg
寬x(英文字母小寫x)高
變化出的圖片大小范圍
36 圖片增加光亮度,飽和度,色彩
convert -modulate 150,150,150 1.jpg 2.jpg
brightness,saturation,hue
37 增加飽和度
變深
convert -contrast 1.jpg 2.jpg 加深1倍
convert -contrast -contrast 1.jpg 2.jpg 加深2倍
變淺
convert +contrast 1.jpg 2.jpg 變淺1倍
convert +contrast +contrast 1.jpg 2.jpg 變淺2倍
38 單純旋轉角度
正值是順時針 負值是逆時針
convert -rotate 30 origin.jpg dog.jpg
convert -rotate -30 origin.jpg dog.jpg
39 模糊
高斯模糊:
convert -blur 80 foo.jpg foo.png-blur
參數還可以這樣-blur 80×5。后面的那個5表示的是Sigma的值,這個是圖像術語,我也不太清楚,總之,它的值對模糊的效果起關鍵的作用。
40 翻轉
上下翻轉:
convert -flip foo.png bar.png
左右翻轉:
convert -flop foo.png bar.png
41 反色
形成底片的樣子:
convert -negate foo.png bar.png
42 單色
把圖片變為黑白顏色:
convert -monochrome foo.png bar.png
43 加噪聲
convert -noise 3 foo.png bar.png
44 油畫效果
我們可用這個功能,把一張普通的圖片,變成一張油畫,效果非常的逼真
convert -paint 4 foo.png bar.png
45 旋轉
把一張圖片,旋轉一定的角度:
convert -rotate 30 foo.png bar.png
上面的30,表示向右旋轉30度,如果要向左旋轉,度數就是負數。
46 炭筆效果
convert -charcoal 2 foo.png bar.png
形成炭筆或者說是鉛筆畫的效果。
47 散射
毛玻璃效果:
convert -spread 30 foo.png bar.png
48 漩渦
以圖片的中心作為參照,把圖片扭轉,形成漩渦的效果:
convert -swirl 67 foo.png bar.png
49 凸起效果
用-raise來創建凸邊:
convert -raise 5×5 foo.png bar.png
執行后,你會看到,照片的四周會一個5×5的邊,如果你要一個凹下去的邊,把-raise改為+raise就可以了。其實凸邊和凹邊看起來區別並不是很大。
其他
其他功能都是不太常用的,如果你感興趣的話,可以看它的聯機文檔
50. 圖片翻轉后添加背景色
convert -rotate 45 -background #FFB6C1 origin.jpg or.jpg
import
import是一個用於屏幕截圖的組件,下面列出的是我們常用的功能,其他的功能,你參考它的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秒鍾內切換到需要截取的畫面噢。
display
display應該是我們使用的最為頻繁的圖像處理軟件了,畢竟,還是看的多
顯示圖片
display foo.png
如果你要顯示多個文件,你可以使用通配符
display *.png
幻燈片
display -delay 5 *
每隔5個百分之秒顯示一張圖片
一些快捷鍵
space(空格): 顯示下一張圖片
backspace(回刪鍵):顯示上一張圖片
h: 水平翻轉
v: 垂直翻轉
/:順時針旋轉90度
:逆時針旋轉90度
>: 放大
<: 縮小
F7:模糊圖片
Alt+s:把圖片中間的像素旋轉
Ctrl+s:圖象另存
Ctrl+d:刪除圖片
q: 退出
/*************************************************************************************************
/*************************************************************************************************
/*************************************************************************************************
/*************************************************************************************************
/*************************************************************************************************
一個例子
下面還是讓我們來把幾個 EmacsColorTheme 的抓圖制作成幾張疊加的照片的
效果。首先分別設定幾個 color-theme ,然后分別建立抓圖:
代碼:import -frame 1.png
import -frame 2.png
import -frame 3.png
import -frame 4.png
抓的圖片太大了,讓我們先把他們縮小一點吧:
代碼:for file in *.png; do
convert $file -resize 400x $file
done
好了,現在讓我們來制作相片的邊框,其實就是先加一個白色的邊框,再加一個
灰色的邊框,先用產生一個小一點的圖來試驗一下吧:
代碼:convert 1.png -resize 100x100 -bordercolor white -border 6
-bordercolor grey60 -border 1 1-border.png
OK!這樣就是邊框了,如圖所示:
這樣還不夠 cool ,讓我們來產生一點陰影:
代碼:convert 1-border.png -shadow 60x4+4+4 1-shadow.png
這樣就產生了陰影:
接下來要做的是把陰影和原來的圖形融合到一起:
代碼:convert 1-shadow.png 1-border.png -background none
-mosaic 1-border-shadow.png
把上面的步驟連在一起做就是:
代碼:convert 1.png -resize 100x100
-bordercolor white -border 6
-bordercolor grey60 -border 1
( +clone -shadow 60x4+4+4 )
+swap -background none -mosaic
1-border-shadow.png
好了,知道如何制作邊框了,現在要把幾張“照片”組合在一起,讓我們再用同樣
的辦法產生一個 2-border-shadow.png ,然后把一張旋轉一下,移動一點,然
后把他們組合在一起:
代碼:convert 1-border-shadow.png
( -page 20x30 2-border-shadow.png
-background none -rotate 30 )
-background none -mosaic mosaic.png
好了!這就是基本流程,用類似的辦法,我們可以把四張“照片”組合在一起了,
而且我決定最后才加上陰影,而不是每一張都加陰影:
代碼:
convert ( -page +0+40 1.png
-bordercolor white -border 6
-bordercolor grey60 -border 1
-background none -rotate -5 )
( -page +30+0 2.png
-bordercolor white -border 6
-bordercolor grey60 -border 1
-background none -rotate 20 )
( -page +10+40 3.png
-bordercolor white -border 6
-bordercolor grey60 -border 1
-background none -rotate 40 )