1 圖片水印處理
假設把名為logo.gif的水印圖標添加在原始圖片(src.jpg)右下角,且水印的下邊緣距原始圖片10像素、右邊緣距原始圖片5像素。使用如下命令即可:
convert src.jpg logo.gif -gravity southeast -geometry +5+10 -composite dest.jpg
2 文字水印處理
如果不含中文字符,可以直接通過convert draw text的方式將文字添加到圖片,否則就需要使用其它的辦法。命令行中不能包括中文字符,但是能通過讀取文件的方式來操作,即先把中文信息保存文本文件中。注意:文本文件的編碼最好用UTF-8,同時也需要選取一個支持中文的字體。直接把文本文本中的信息輸出到圖片上使用命令mogrify,不過也可以使用convert命令把文本文件中的信息生成一個圖片,然后再把圖片合成到原始圖片中。下面分別介紹這幾種方法。
- 不含中文字符:例如把www.cnblogs.com作為水印加上圖片上,命令如下
-
convert src.jpg -gravity southeast -fill black -pointsize 16 -draw "text 5,5 'http://www.cnblogs.com/dying'" dest-c.jpg mogrify -pointsize 16 -fill black -weight bolder -gravity southeast -annotate +5+5 "http://www.cnblogs.com/dying" src.jpg
說明:上述兩條命令達到同樣的結果,但是第一次命令可以保留原始圖片,第二條是直接在原始圖片上打上水印。
- 存在中文的情況:假設存有信息的文件叫t.txt,字體文件是msyh.ttf
-
方法1: //把文件t.txt中的信息生成圖片txt.png, -transparent white讓圖片的背景透明,-size x30設置圖片的高度,-pointsize設置字體大小,-font設置字體 convert -transparent white -font msyh.ttf -fill black -pointsize 24 label:@t.txt txt.png //把txt.png合成到src.jpg上 convert src.jpg txt.png -gravity southeast -geometry +10+5 -composite dest.jpg 方法2: convert src.jpg -transparent white -font msyh.ttf -fill black -pointsize 24 -size x30 label:@t.txt -gravity southeast -geometry +10+5 -composite dest.jpg //southeast 圖片的東南方向 上北下南左西右東 方法3: mogrify -font msyh.ttf -pointsize 24 -fill white -weight bolder -gravity southeast -annotate +20+20 @"t.txt" src.jpg
說明:上述第一、二種方法都有瑕疵,第二種背景不能變成透明,第一種雖然生成的圖片可以透明,但是合成到原始圖上效果不是很理想,第三種是完全透明的,所以推進用第三種方式來操作。
我個人以為上面的方法3對gif添加中文水印非常的好用,推薦這個,不過一定要對原圖像進行備份,另外一篇文章:ubuntu動態截圖,制作GIF動畫 。
文章出處:http://www.devdiv.com/imagemagick_-blog-50901-50685.html