Skip to content

Commit ffd24c0

Browse files
committed
add post
1 parent 7f1373c commit ffd24c0

File tree

2 files changed

+95
-7
lines changed
  • .github/workflows

2 files changed

+95
-7
lines changed

.github/workflows/main.yml

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,26 @@ jobs:
5959
- name: Compress Image
6060
run: |
6161
sudo apt-get update
62-
sudo apt-get install -y imagemagick libheif-dev
63-
64-
convert --version
65-
66-
find ./content/posts/ -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.jpeg" \) -exec convert {} -pointsize 48 -fill "#909090" -font ./static/ArchitectsDaughter-Regular.ttf -gravity south -annotate +0+20 "@liudon\nhttps://liudon.com" -resize 1080x\> {} \;
67-
find ./content/posts/ -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.jpeg" \) -exec convert {} -quality 75 -define webp:image-hint=photo {}_1080x.webp \;
68-
find ./content/posts/ -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.jpeg" \) -exec convert {} {}_1080x.avif \;
62+
sudo apt-get install -y build-essential libx11-dev libxext-dev zlib1g-dev \
63+
libpng-dev libjpeg-dev libfreetype6-dev libxml2-dev liblcms2-dev \
64+
libopenexr-dev libtiff-dev libraw-dev libheif-dev libde265-dev \
65+
libfftw3-dev libglib2.0-dev libwebp-dev
66+
67+
wget https://download.imagemagick.org/ImageMagick/download/ImageMagick.tar.gz
68+
tar xvzf ImageMagick.tar.gz
69+
cd ImageMagick-7.*
70+
./configure
71+
make
72+
sudo make install
73+
sudo ldconfig /usr/local/lib
74+
75+
magick --version
76+
77+
cd ../
78+
79+
find ./content/posts/ -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.jpeg" \) -exec magick {} -pointsize 48 -fill "#909090" -font ./static/ArchitectsDaughter-Regular.ttf -gravity south -annotate +0+20 "@liudon\nhttps://liudon.com" -resize 1080x\> {} \;
80+
find ./content/posts/ -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.jpeg" \) -exec magick {} -quality 75 -define webp:image-hint=photo {}_1080x.webp \;
81+
find ./content/posts/ -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.jpeg" \) -exec magick {} {}_1080x.avif \;
6982
7083
- name: Setup Hugo
7184
uses: peaceiris/actions-hugo@v3
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
title: "使用 ImageMagick 自动添加水印,保护图片版权"
3+
date: 2024-10-12T23:32:31+08:00
4+
draft: false
5+
tags:
6+
- imagemagic
7+
- github
8+
- 版权
9+
---
10+
11+
## 背景
12+
13+
细心的朋友可能会发现,我的博客图片都带上了水印。
14+
15+
经过[博客被恶意镜像](https://liudon.com/posts/blog-malicious-mirroring/)这个事情后,我一直在思考如何防止内容被恶意盗用,尤其是博客里的一些图片。
16+
17+
[当Hugo遇上AVIF,优化图片加载](https://liudon.com/posts/use-avif-to-optimize-images-on-hugo/)这篇文章里,使用了ImageMagick工具做了图片压缩。
18+
19+
当时文章最后说留了个坑,其实就是今天的这篇内容,利用ImageMagick自动给图片添加水印。
20+
21+
## 实现
22+
23+
思路其实和之前图片压缩一样,还是在Github Action里使用ImageMagick工具进行添加水印操作。
24+
25+
[workflow代码](https://github.com/Liudon/liudon.github.io/blob/code/.github/workflows/main.yml)
26+
27+
```
28+
- name: Compress Image
29+
run: |
30+
# 安装依赖
31+
sudo apt-get update
32+
sudo apt-get install -y build-essential libx11-dev libxext-dev zlib1g-dev \
33+
libpng-dev libjpeg-dev libfreetype6-dev libxml2-dev liblcms2-dev \
34+
libopenexr-dev libtiff-dev libraw-dev libheif-dev libde265-dev \
35+
libfftw3-dev libglib2.0-dev libwebp-dev
36+
37+
# 编译ImageMagick
38+
wget https://download.imagemagick.org/ImageMagick/download/ImageMagick.tar.gz
39+
tar xvzf ImageMagick.tar.gz
40+
cd ImageMagick-7.*
41+
./configure
42+
make
43+
sudo make install
44+
sudo ldconfig /usr/local/lib
45+
46+
magick --version
47+
48+
cd ../
49+
50+
# 将原图转换大小,同时添加文本水印
51+
find ./content/posts/ -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.jpeg" \) -exec magick {} -pointsize 48 -fill "#909090" -font ./static/ArchitectsDaughter-Regular.ttf -gravity south -annotate +0+20 "@liudon\nhttps://liudon.com" -resize 1080x\> {} \;
52+
53+
# 将处理后的原图生成webp格式文件
54+
find ./content/posts/ -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.jpeg" \) -exec magick {} -quality 75 -define webp:image-hint=photo {}_1080x.webp \;
55+
56+
# 将处理后的原图生成avif格式文件
57+
find ./content/posts/ -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.jpeg" \) -exec magick {} {}_1080x.avif \;
58+
```
59+
60+
1. 先将原图进行大小转换,同时添加文本水印:
61+
62+
```
63+
-fill #909090 代表水印颜色
64+
-pointsize 48 代表水印文字大小
65+
-font ./static/ArchitectsDaughter-Regular.ttf 代表水印字体,我使用了ArchitectsDaughter字体,提前下载到了git仓库
66+
@liudon\nhttps://liudon.com 代表文本水印内容
67+
```
68+
69+
[水印字体文件下载](https://fonts.google.com/specimen/Architects+Daughter)
70+
71+
2. 将处理后的原图生成webp和avif格式文件
72+
73+
*注意,通过`sudo apt-get install -y imagemagick libheif-dev`安装的ImageMagick版本是6.x,转换过程会有些问题,所以这里改为了通过源码编译最新7.x版本。*
74+
75+
好了,这样后续提交Github后,Workflow就会自动利用ImageMagick帮我们处理图片了。

0 commit comments

Comments
 (0)