越学越上瘾   11.11 来百知学IT   课程全面升级

立刻报名学习

400-616-5551

您所在位置: 首页> 学习资讯> python实战 | Python给美女壁纸加水印

python实战 | Python给美女壁纸加水印

发布百知教育 来源:学习资讯 2019-09-16

经常写文章分享的小伙伴,会在各大平台发自己的原创文章,为了避免抄袭,让自己的原创文章得到更好的传播,我们需要对文章的图片加上水印。

有些平台可以选择是否对图片加水印,比如公众号平台。有些平台没有这个选择,比如自己搭建的网址,有些同学擅长 photoshop 之类的工具,可能会手动给图片加水印,作为一名合格的 pythoner,我们当然用 Python 来自动给图片加上水印了。

图片准备

这里我用之前写的文章 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 上了,公众号回复「水印」获取。

效果图

挑几张图给大家看下效果。


3.png



内容来源于微信公众号:python知识圈


python培训:http://www.baizhiedu.com/python2019


上一篇:[新手必看] 17个常见的Python运行时错误

下一篇:java培训 | Maven系列:聚合、继承、单继承问题详解!

相关推荐