python3使用PIL添加中文文本水印背景方法详解
环境:Windows10_x64
Python版本 :3.9.2
Pillow版本:9.1.1
写的博客文章被转载且不注明出处的情况时有发生,甚至有部分转载者将文章配图添加自己的水印!为了保护作者劳动成果,添加水印是一个可选项。
今天记录下Windows10环境下使用python3.9简单实现批量添加中文文本水印背景的过程,并提供示例代码
一、背景描述
python的PIL库可进行图片处理,十分强大,可使用该库实现图片添加水印背景的需求。
可通过pip进行安装(默认安装最新版),命令如下:
pip install Pillow
pypi地址: https://pypi.org/project/Pillow/
文档地址: https://pillow.readthedocs.io/en/stable/
二、具体实现
这里列举下实现文本水印背景的关键点。
1、生成文本背景
可通过ImageDraw.text实现:
https://pillow.readthedocs.io/en/stable/reference/ImageDraw.html
中文文本可通过设置正确的字体实现:
font = ImageFont.truetype("simsun.ttc", fontSize,encoding="utf-8")
文本颜色可通过RGB值设置,示例如下:
fill=(106,106,106)
2、旋转文本
可通过rotate函数实现:
https://pillow.readthedocs.io/en/stable/reference/Image.html
3、设置水印
可通过Image.paste函数实现:
https://pillow.readthedocs.io/en/stable/reference/Image.html
4、生成水印背景
1)需要通过循环控制,多次设置背景图片;
i,j = 0,0 while True: x,y = i*step,i*step if y < height : x = 0 if y > height : x = j*step j = j + 1 y = height - 10 #print(i,"xy :",x,y) draw_text(img,(x,y),fill,mask,rotated_mask) if (x + step > width ) and (y + step > height ) : break i = i + 1
2)导出时需要添加质量参数,避免导出的图片失真;
img.save(dstFile,optimize=True, quality=100)
5、多进程加速
批量添加文本水印背景时,可使用进程池进行加速。
pool = Pool(processes=8) # set the processes max number for root, dirs, files in os.walk(srcDir): for name in files: srcFile = os.path.join(root, name) dstFile = os.path.join(dstDir, name) print("%s => %s" % (srcFile,dstFile)) # add_watermark(srcFile,dstFile,fontSize,myText,angle,fill,step) result = pool.apply_async(add_watermark,(srcFile,dstFile,fontSize,myText,angle,fill,step)) pool.close() pool.join()
三、运行效果
这里演示下python3使用PIL添加中文文本水印背景的运行效果,具体如下:
四、资源下载
到此这篇关于python3使用PIL添加中文文本水印背景方法详解的文章就介绍到这了,更多相关python3使用PIL添加水印背景内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
pandas使用get_dummies进行one-hot编码的方法
今天小编就为大家分享一篇pandas使用get_dummies进行one-hot编码的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-07-07Python jieba分词添加自定义词和去除不需要长尾词的操作方法
这篇文章主要介绍了Python jieba分词如何添加自定义词和去除不需要长尾词,主要介绍jieba的基础用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-03-03python命令行参数解析OptionParser类用法实例
这篇文章主要介绍了python命令行参数解析OptionParser类用法实例,需要的朋友可以参考下2014-10-10window7下的python2.7版本和python3.5版本的opencv-python安装过程
这篇文章主要介绍了window7下的python2.7版本和python3.5版本的opencv-python安装过程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-10-10
最新评论