点击上方 Python知识圈,选择“设为星标”
回复“1024”获取编程资料
阅读文本大概需要 5 分钟。
上周,pk 哥公众号留言功能开通啦,这么大的事情,福利是免不了的!福利在文末,想先看福利的可以直接滑到底。开心,公众号即将有留言功能了
经常写文章分享的小伙伴,会在各大平台发自己的原创文章,为了避免抄袭,让自己的原创文章得到更好的传播,我们需要对文章的图片加上水印。
图片准备
这里我用之前写的文章 Python批量下载无版权图片 爬的图片,比如之前爬取的美女主题的图片,我放在了一个文件夹里,我们现在要把这个文件夹里的所有图片加上水印。
环境
环境:Mac OS、Python编辑器:Pycharm
安装导入
我们需要用到 Python 中处理图片的库 pillow,先用 pip 命令安装。
pip install pillow
或者
pip3 install pillow
导入相关的库。
from PIL import Image, ImageDraw, ImageFont
import os
文件处理
我们需要列出图片目录下所有的图片文件名,为下面处理这些图片做准备。
我们用到的是 os 模块里的 walk 方法,括号里面输入你要处理的图片的目录,我们用三个参数来接收 walk 方法返回的值。
for root, dirs, files in os.walk(file_dir):
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
这里,我只会用到 files,也就是目录下所有的图片文件名称,files 是个 list 列表,我们需要用 for 循环把它一个个遍历出来。再组合成每张图片的完整路径,最后用 pillow 里的 Image 方法依次打开图片,详细代码如下。
上面的图片目录我作为了参数,后面调用这个方法时,传入你需要处理的图片的目录就好了。
设置字体
我们设置的水印中一般会有中文,所以我们需要对字体进行设置。
Mac OS 系统和 Windows 系统对字体的设置有点差异。
设置中文字体时,最好使用字体对应英文名称。
Mac OS 系统常用中文字体:
华文细黑:STHeiti Light 华文黑体:STHeiti华文楷体:STKaiti华文宋体:STSong华文仿宋:STFangsong
Windows 系统常用中文字体:
黑体:SimHei宋体:SimSun新宋体:NSimSun仿宋:FangSong楷体:KaiTi仿宋_GB2312:FangSong_GB2312楷体_GB2312:KaiTi_GB2312微软正黑体:Microsoft JhengHei微软雅黑体:Microsoft YaHei
Mac OS 系统字体路径一般是 /System/Library/Fonts/,Windows 系统字体路径一般是 C:\Windows\Fonts,我们在字体里找到需要的字体,给出它的绝对路径,并设置字体的大小。详细代码如下:
添加水印
最后一步,就是添加水印, 因为每张图片的尺寸不一样,我们需要获取图片的尺寸,如果我们要在左下角添加水印,我的比例设置为:1/30*width, 9/10*height。
fill 参数指的是字体颜色的 RGB 值,我设置的是白色(255, 255, 255),其他颜色大家根据需要修改。
最后,给出图片目录,调用函数。
if __name__ == '__main__':
file_dir = r'/Users/brucepk/Pictures/beautiful girl'
text2pic(file_dir)
全部代码我上传到 GitHub 上了,公众号回复「水印」获取。
效果图
挑几张图给大家看下效果。
福利时间
送什么福利呢?简单粗暴,直接发红包,中奖者每人将收到 pk 哥私发的 20 元红包。
提高大家中奖率,过滤掉一批伸手党,本次活动规则如下:
1 、参与途径一:觉得本文对你有帮助的,请赞赏,金额随意,在赞赏区抽取 5 名幸运读者。2、参与途径二:在评论区留言,走心的说出 Python 知识圈公众号对你学习 Python 有什么帮助,需要改进的建议也可以说(不走心的不上墙哦),点赞前 5 名的中奖。3、开奖时间:18 日晚上 8 点,开奖将在留言区和 pk 哥的微信朋友圈公布。4、请中奖者 24 小时内联系我,我给你发红包,未联系者视为放弃,没加我微信可以加下:
听说两种途径同时参与中奖率更高哦。
精彩推荐
以梦为马,不负韶华