一、项目简介

日常工作生活中,我们常常需要为各种图片添加水印。本文利用golang实现了一个简单的、可定制化程度高的,为图片批量加水印的方法。您可以根据自身需求,实现任意修改水印大小、字体、颜色、旋转角度等功能。

项目完整代码请访问这里。

二、使用方法

git clone https://github.com/remould92/gowhitemark.git
cd gowhitemark

将需要加水印的图片放在srcimg文件夹下,在whitemark.txt中填入水印文字。

go run whitemark.go

加完水印的文件出现在同一项目目录下. 效果如下所示 :(注意我们添加的不是csdn的水印,而是test等文字)
在这里插入图片描述

在这里插入图片描述

三、思路简要说明

添加水印实际上有些类似PS里添加图层的操作。为了实现这一功能,我们只需要完成两个步骤:一是根据文字生成对应的水印图片;二是将水印图片盖在原始图片上。

这里为了方便的生成水印图片,我们使用了freetype对文本进行渲染操作。详细过程请参考代码里的注释。

而关于“水印覆盖”的操作,大家不妨想象一下,画家在作画时,往往需要在同一块画布上绘制不同的物体。加水印的原理与之类似。我们可以定义一块画布,分别读取原始图片以及水印图片,将原始图片绘制到画布上,再将水印图片绘制到同一块画布上。由此完成添加水印的功能。