利用ImageMagick給圖片加水印

利用ImageMagick給圖片加水印

水印可能是文字,也可能是網(wǎng)站的logo等。圖片水印比較簡單,就是把自己水印圖標合成到原始圖片上;文字水印中如果字符包含中文,處理就稍微麻煩一些。

  • 圖片水印處理

假設(shè)把名為logo.gif的水印圖標添加在原始圖片(src.jpg)右下角,且水印的下邊緣距原始圖片10像素、右邊緣距原始圖片5像素。使用如下命令即可:

convert src.jpg logo.gif -gravity southeast -geometry +5+10 -composite dest.jpg
  • 文字水印處理

如果不含中文字符,可以直接通過convert draw text的方式將文字添加到圖片,否則就需要使用其它的辦法。命令行中不能包括中文字符,但是能通過讀取文件的方式來操作,即先把中文信息保存到文本文件中。注意:文本文件的編碼最好用UTF-8,同時也需要選取一個支持中文的字體。直接把文本文本中的信息輸出到圖片上使用命令mogrify,不過也可以使用convert命令把文本文件中的信息生成一個圖片,然后再把圖片合成到原始圖片中。下面分別介紹這幾種方法。

不含中文字符:例如把www.netingcn.com作為水印加上圖片上,命令如下

convert src.jpg -gravity southeast -fill black -pointsize 16 -draw "text 5,5 'http://www.netingcn.com'" dest-c.jpg

mogrify -pointsize 16 -fill black -weight bolder -gravity southeast -annotate +5+5 "http://www.netingcn.com" src.jpg

說明:上述兩條命令達到同樣的結(jié)果,但是第一次命令可以保留原始圖片,第二條是直接在原始圖片上打上水印。

存在中文的情況:假設(shè)存有信息的文件叫t.txt,字體文件是msyh.ttf。

方法1:

//把文件t.txt中的信息生成圖片txt.png, -transparent white讓圖片的背景透明,-size x30設(shè)置圖片的高度
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

方法3:

mogrify -font msyh.ttf -pointsize 24 -fill black -weight bolder -gravity southeast -annotate +20+20 @"t.txt" src.jpg

說明:上述第一、二種方法都有瑕疵,第二種背景不能變成透明,第一種雖然生成的圖片可以透明,但是合成到原始圖上效果不是很理想,第三種是完全透明的,所以推進用第三種方式來操作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容