本文主要介绍如何使用python的PIL库给图片增加水印
文章目录
背景说明工具准备处理步骤源代码处理效果展示
背景说明
当我们想给一些图片添加水印的时候,尤其是图片数量较多的时候,就可以使用python进行自动化处理。包括但不限于在自媒体上发布自己的各种画稿、摄影作品、宣传作品等等。工具准备
使用如下pip命令安装所需要的python第三方库PIL:
python3 -m pip install --upgrade Pillow
到谷歌字体下载我们希望使用的水印字体到本地
本案例使用Explora字体,字体文件放在E:/
目录下
准备一张要添加水印的图片,本案例使用以下图片,图片同样放在E:/
目录下
处理步骤
通过python给图片增加水印的步骤如下:
打开我们所需要添加水印的图片在图片上增加一层蒙版(或者说画布好理解一些?)在画布上增加我们想要添加的水印内容,包括但不限于 文本颜色字体透明度 保存图片
源代码
from PIL import Image, ImageDraw, ImageFont"""对应步骤一: 打开图片由于需要设置透明度, 所以需要图片需要从默认的RGB模式转换成RGBA模式"""image_to_process = Image.open('E:/brooch.png').convert("RGBA")"""对应步骤二: 在图片上创建一个画布后续的添加水印就是在带有画布的图片上进行需要注意的是, 这相当于在图片上贴了了一层画布, 我们的内容是写在画布上, 然后内容会"渗"到图片上所以我们最终要保存的是图片, 而不是画布"""image_could_be_drawed = ImageDraw.Draw(image_to_process)"""进行步骤三之前,准备好要添加的水印内容""""""文本"""text = "A K I R A""""字体, 加载之前下载好的字体, 并设置字体大小为128"""font = ImageFont.truetype("E:/Explora-Regular.ttf", 128)"""水印内容放在图片中的哪个位置这里通过image_to_process.size获取图片大小, 这里是(1024, 1024)然后除以2, 使得水印内容从正中间开始由于是从正中间开始写水印文本, 所以水印位置是中间偏右"""location = tuple(location // 2 for location in image_to_process.size)"""字体颜色, RGBA"""fill_color_RGBA = (254, 223, 225, 179)"""对应步骤三: 将水印内容怼到图片上"""image_could_be_drawed.text(location, text, font=font, fill=fill_color_RGBA)"""让图片显示出来, 看看效果"""image_to_process.show()"""对应步骤四: 保存图片到本地"""image_to_process.save('E:/image_withmark.png')
以上就是给图片增加水印的处理,需要批量处理的时候,如下循环操作即可:
import osall_images = os.listdir("E:/images/")for image in all_images:"""执行上述代码的操作即可"""
处理效果展示
本案例中处理完的图片效果如下:
好书推荐:
流畅的pythonPython编程 从入门到实践 第2版Python数据结构与算法分析 第2版
好课推荐:
零基础学pythonpython核心技术与实战python自动化办公实战
写文不易,如果对你有帮助的话,来一波点赞、收藏、关注吧~👇