黄聪:利用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动画 。
黄聪:利用ImageMagicK给图片加水印的更多相关文章
- ImageMagick实现图片加水印(ImageMagick6.9.10)
		一,ImageMagick的安装 请参见: https://www.cnblogs.com/architectforest/p/12807514.html 说明:刘宏缔的架构森林是一个专注架构的博客, ... 
- 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化
		<?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ... 
- thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印
		今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ... 
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
		[强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ... 
- php 分享两种给图片加水印的方法
		本文章向码农们介绍 php 给图片加水印的两种方法,感兴趣的码农可以参考一下本文章的源代码. 方法一:PHP最简单的加水印方法 <?php // http://www.manongjc.com ... 
- Java图片处理(二)图片加水印
		图片加水印,是通过图片重叠绘制实现的.实现代码如下: public static void press(String pressImg, String pressText, String target ... 
- PHP给图片加水印
		<?php /** *图片加水印 *@param $srcImg 原图 *@param $waterImg 水印图片 *@param $savepath 保存路径 *@param $savena ... 
- 如何用node.js批量给图片加水印
		上一篇我们讲了如何用node.js给图片加水印,但是只是给某一张图片加,并没有涉及到批量处理.这一篇,我们学习如果批量进行图片加水印处理. 一.准备工作: 首先,你要阅读完这篇文章:http://ww ... 
- 使用 ImageEnView 给图片加水印,及建缩略图
		摘要: 使用 ImageEnView 给图片加水印,及建缩略图 {Power by hzqghost@21cn.com}unit CutWater; interface uses Math,imag ... 
随机推荐
- Java中的面向对象I
			一.首先来了解一下Java面向对象的五个程序设计方式: 1.万物皆对象 Java以类为基本模块来将问题抽象化,在计算机中解决实际生活中的问题 2.程序为对象的集合,程序中的类通过互发消息来告知彼此要做 ... 
- Python之路,第七篇:Python入门与基础7
			python3 元组 (tuple) 元组是不可改变的序列, 同list 一样, 元组可以存放任意的值: 表示方法: 用小括号()括起来: 单个元素括起来后加逗号(,)区分单个对象还是元组: 创建空 ... 
- 对Functional Language的认识
			What: A functional language is a programming language built over and around logical functions or pro ... 
- 数据类型int、float、str、list、dict、set定义及常用方法汇总
			数据类型int:记录整数事物状态 可变不可变:值不可变类型,改变变量值实则是改变了变量的指向 int():功能:1.工厂函数, i = 5 <==> i = int(5) 2.强制类型转换 ... 
- SQLI DUMB SERIES-3
			less3 输入?id=1' 说明输入的id旁边加了单引号和括号('id'),直接在1后面加入“ ') ”,闭合前面的单引号和括号. 方法同less1相同. 例如:查询PHP版本和数据库名字 ?id= ... 
- js 自定义滚动条
			http://visugar.com/2017/08/18/20170818CustomScroll/ chrome浏览器 https://www.cnblogs.com/yclblog/p/6 ... 
- 理解--->Java中的值传递&引用传递
			转自:http://url.cn/5tL9F5D 值传递和引用传递 值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际 ... 
- 【添加tomcat里lib下的jar包】eclipse中The project cannot be built until build path errors are resolved
			问题描诉:在eclipse中新建了一个web项目,把myeclipse中正常的项目拷贝到eclipse的src和webcontent目录 然后项目中就出现了× 注意项目中Errors 
- 使用loki+ mtail + grafana + prometheus server分析应用问题
			loki 是一个方便的类似prometheus 的log 系统,mtail 是一个方便的日志提取工具, 可以暴露为http 服务——支持导出prometheus metrics 环境准备 docker ... 
- drone  secret 使用
			drone 的secret 可以让我们方便的对于需要保密的信息的隐藏,减少账户信息的泄密 环境准备 docker-compose 文件 version: '3' services: drone-s ... 
