利用腳本將文字插入到圖片或進行多個圖片拼接


最近做一個拼圖游戲,因為有十幾關,所以測試的時候也是看的兩眼冒金星!於是想到在圖片上標上數字,直接按數字排序就方便多了。
Linux下有個圖片處理工具imagemagick很強大,正適合做這種后台處理圖像的工作。

安裝方法:

$ sudo aptitude install imagemagick



1、添加文本的命令(折騰了半天才得來的成果):

$ convert -font helvetica  -pointsize 50 -density 65  -fill red -draw "text 0,56 T99"  in.jpg out.jpg


參數解釋:

  • convert - imagemagick工具的一個核心命令,用於圖片格式轉換,縮放,剪切等等
  • -font - 指定字體
  • -pointsize - 字體點陣大小
  • -density - 字體點陣密度
  • -fill - 字體顏色
  • -draw - 'text'表示插入文本,'0,56'表示文本的起始坐標,'T99'表示要顯示的文本
  • in.jpg - 輸入圖片文件名稱
  • out.jpg -輸入圖片文件名稱


注意:
'T99'表示要顯示的文本,注意這里文本必須以字符開頭,文字或下划線或其它字符開頭會報錯

關於字體類型還可以看這一段解釋:

如何用23英寸高的文字注釋一個圖片?   
先檢查有無可縮放字體:
$ 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 -fill green -draw 'text 50,300 Magick' image.gif annotated.gif



2、多個圖片拼接命令

$ convert -size 500x500 xc:back -draw 'image Over 10,10 200,200 "in.jpg"' out.jpg
$ convert -size 500x500 xc:#cfcfcf -draw 'image Over 10,10 200,200 "in.jpg"' out.jpg


拼接兩個640x960圖成1280x640片示例:

convert -size 1280x960 xc:#cfcfcf -draw 'image Over 0,0 640,960 "2.jpg"' -draw 'image Over 640,0 640,960 "1.jpg"'   out.jpg


參數說明:

  • -size - 定義的圖片尺寸,如果要拼接多圖,需要提取計算出最后的尺寸
  • xc - 輸出圖片背景顏色,兩種指定方式看上面示例
  • -draw - 該參數的格式為' image Over 起始坐標 要顯示的width與height "輸入圖片名稱"' 輸出圖片名稱


注意:'image Over'關鍵字不可少,表示添加圖片,好像也可以使用'image SrcOver',具體差別不太清楚;起始坐標表示要插入的圖片在輸出圖像中左上角對應的坐標;第二個數值對為在輸出圖像上要顯示的width與height,如果給的不成比例,它會自動調整

至於如何將一張圖片疊加到另一張之上,通過上面拼接示例也很容易實現的(~自己去思考~)。

關於imagemagick的更多信息,可以參閱本人很久之前整理(或撰寫)的三篇文檔:
[1] ImageMagick FAQ摘要:www.mcuos.com/thread-598-1-4.html
[2] ImageMagick簡單介紹:www.mcuos.com/thread-596-1-4.html
[3] ImageMagick詳細補充:www.mcuos.com/thread-597-1-4.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM