利用ImageMagicK给图片加水印

简介:

1 图片水印处理

假设把名为logo.gif的水印图标添加在原始图片(src.jpg)右下角,且水印的下边缘距原始图片10像素、右边缘距原始图片5像素。使用如下命令即可:

 
convert src.jpg logo.gif -gravity southeast -geometry +5+10 -composite dest.jpg

-gravity southeast 指叠加位置为右下角

如果要求在正中间,参数为center

如果要求在垂直据顶部、水平居中(正北方向),参数为north

 

imagemagick官网:http://www.imagemagick.org/script/composite.php

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.cnblogs.com/huangcong/p/7224020.html,如需转载请自行联系原作者


相关文章
|
1月前
|
数据安全/隐私保护 Python
Python3给图片添加水印
Python3给图片添加水印
60 1
|
2天前
|
数据采集 前端开发 数据安全/隐私保护
给picgo上传的图片加个水印
手把手教你们怎么给picgo中的图片加水印,防止图片被盗用
给picgo上传的图片加个水印
|
JavaScript
php-单张图片、多张图片、视频上传
php-单张图片、多张图片、视频上传
204 0
php-单张图片、多张图片、视频上传
|
数据安全/隐私保护 索引
php-上传图片加水印(文字水印图片水印)
php-上传图片加水印(文字水印图片水印)
186 0
php-上传图片加水印(文字水印图片水印)
|
计算机视觉
【方便的Opencv】实现图片合成视频+附带图片生成gif
【方便的Opencv】实现图片合成视频+附带图片生成gif
【方便的Opencv】实现图片合成视频+附带图片生成gif
|
数据安全/隐私保护 计算机视觉
使用opencv给视频添加水印
使用opencv给视频添加水印
268 0
使用opencv给视频添加水印
|
数据安全/隐私保护 计算机视觉
opencv,照片加水印
opencv,照片加水印
67 0
|
前端开发 数据安全/隐私保护 Android开发
autojs图片加水印
牙叔教程 简单易懂
189 0
|
数据安全/隐私保护
|
PHP 数据安全/隐私保护
PHP利用GD库给图片添加水印
利用GD库给图片添加水印
419 0