需求

增加简单的中文水印

实现方案

利用ImageMagick的mogrify命令实现添加文字水印。

1: 安装ImageMagick

brew install imagemagick

有搜索过,也有Docker镜像,有兴趣的小伙伴也可以使用容器的方式。

2: 选择字体

弄个可以商用免费的字体吧,避免以后可能存在的问题,找了个阿里巴巴普惠体:

image-20210206172702064

阿里巴巴普惠体获取方式:

阿里巴巴普惠体获取方式:
Alibaba ICS(淘宝用户登入):
https://ics.alibaba.com/project/Hn8mXx
商家服务市场(淘宝天猫商家& 淘宝用户):
https://alibabafont.taobao.com/

我下载过,cdn直接地址是:

https://aifont.alicdn.com/AlibabaPuHuiTi/AlibabaPuHuiTiAll.zip

3: 安装字体

下载后解压:

virhuiaivirhuiai@virhuiaideMBP 阿里巴巴集团字体 % tree -C -N
.
├── AlibabaSans
│   ├── AlibabaSans Nornal
│   │   ├── AlibabaSans-Black.otf
│   │   ├── AlibabaSans-Bold.otf
│   │   ├── AlibabaSans-Heavy.otf
│   │   ├── AlibabaSans-Light.otf
│   │   ├── AlibabaSans-Medium.otf
│   │   └── AlibabaSans-Regular.otf
│   └── AlibabaSans Nornal ltalics
│       ├── AlibabaSans-BoldItalic.otf
│       ├── AlibabaSans-HeavyItalic.otf
│       ├── AlibabaSans-Italic.otf
│       ├── AlibabaSans-LightItalic.otf
│       └── AlibabaSans-MediumItalic.otf
├── AlibabaSans.zip
├── Law Policy for Alibaba Sans.pdf
├── 法务版权声明.pdf
├── 阿里巴巴普惠体
│   ├── Alibaba-PuHuiTi-Bold.ttf
│   ├── Alibaba-PuHuiTi-Heavy.ttf
│   ├── Alibaba-PuHuiTi-Light.ttf
│   ├── Alibaba-PuHuiTi-Medium.ttf
│   ├── Alibaba-PuHuiTi-Regular.ttf
│   └── 阿里巴巴普惠体v1.10版本更新说明.txt

我只安装了阿里巴巴普惠体下的中文字体:

├── 阿里巴巴普惠体
│   ├── Alibaba-PuHuiTi-Bold.ttf
│   ├── Alibaba-PuHuiTi-Heavy.ttf
│   ├── Alibaba-PuHuiTi-Light.ttf
│   ├── Alibaba-PuHuiTi-Medium.ttf
│   ├── Alibaba-PuHuiTi-Regular.ttf
│   └── 阿里巴巴普惠体v1.10版本更新说明.txt

安装完后查看下是否安装上了:

image-20210206173010132

我们选择一个字体使用,比如:

/Users/virhuiaivirhuiai/Library/Fonts/Alibaba-PuHuiTi-Bold.ttf

4:准备文字文件

echo "头条@程序猿阿乐" > /Users/virhuiaivirhuiai/Documents/virhuiai-github/virhuiai.github.io.git/watermarking.txt

5 : mogrify命令加水印

image-20210206173508949

还可以用IDEA写Shell,有提示,方便:

# 先进入目标目录,针对所有图片文件。我这是用png的
for file in ./*.png
do
if [ -f "$file" ]
then
  mogrify -font /Users/virhuiaivirhuiai/Library/Fonts/Alibaba-PuHuiTi-Bold.ttf -pointsize 24 -fill black -weight bolder -gravity southeast -annotate +20+20 @"/Users/virhuiaivirhuiai/Documents/virhuiai-github/virhuiai.github.io.git/watermarking.txt" $file
fi
done

然后本文的水印就加上了。