python3使用PIL添加中文文本水印背景方法詳解
環(huán)境:Windows10_x64
Python版本 :3.9.2
Pillow版本:9.1.1
寫的博客文章被轉(zhuǎn)載且不注明出處的情況時有發(fā)生,甚至有部分轉(zhuǎn)載者將文章配圖添加自己的水??!為了保護(hù)作者勞動成果,添加水印是一個可選項(xiàng)。
今天記錄下Windows10環(huán)境下使用python3.9簡單實(shí)現(xiàn)批量添加中文文本水印背景的過程,并提供示例代碼
一、背景描述
python的PIL庫可進(jìn)行圖片處理,十分強(qiáng)大,可使用該庫實(shí)現(xiàn)圖片添加水印背景的需求。
可通過pip進(jìn)行安裝(默認(rèn)安裝最新版),命令如下:
pip install Pillow
pypi地址: https://pypi.org/project/Pillow/
文檔地址: https://pillow.readthedocs.io/en/stable/


二、具體實(shí)現(xiàn)
這里列舉下實(shí)現(xiàn)文本水印背景的關(guān)鍵點(diǎn)。
1、生成文本背景
可通過ImageDraw.text實(shí)現(xiàn):
https://pillow.readthedocs.io/en/stable/reference/ImageDraw.html

中文文本可通過設(shè)置正確的字體實(shí)現(xiàn):
font = ImageFont.truetype("simsun.ttc", fontSize,encoding="utf-8")文本顏色可通過RGB值設(shè)置,示例如下:
fill=(106,106,106)
2、旋轉(zhuǎn)文本
可通過rotate函數(shù)實(shí)現(xiàn):
https://pillow.readthedocs.io/en/stable/reference/Image.html

3、設(shè)置水印
可通過Image.paste函數(shù)實(shí)現(xiàn):
https://pillow.readthedocs.io/en/stable/reference/Image.html

4、生成水印背景
1)需要通過循環(huán)控制,多次設(shè)置背景圖片;
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 + 12)導(dǎo)出時需要添加質(zhì)量參數(shù),避免導(dǎo)出的圖片失真;
img.save(dstFile,optimize=True, quality=100)
5、多進(jìn)程加速
批量添加文本水印背景時,可使用進(jìn)程池進(jìn)行加速。
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()
三、運(yùn)行效果
這里演示下python3使用PIL添加中文文本水印背景的運(yùn)行效果,具體如下:

四、資源下載

到此這篇關(guān)于python3使用PIL添加中文文本水印背景方法詳解的文章就介紹到這了,更多相關(guān)python3使用PIL添加水印背景內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python3讀取圖片并灰度化圖片的四種方法(OpenCV、PIL.Image、TensorFlow方法)總結(jié)
- Python3安裝Pillow與PIL的方法
- 解決Python3用PIL的ImageFont輸出中文亂碼的問題
- 詳解python3安裝pillow后報錯沒有pillow模塊以及沒有PIL模塊問題解決
- python3用PIL把圖片轉(zhuǎn)換為RGB圖片的實(shí)例
- win10下python3.8的PIL庫安裝過程
- Python3用tkinter和PIL實(shí)現(xiàn)看圖工具
- 解決python3 安裝不了PIL的問題
- python3 pillow生成簡單驗(yàn)證碼圖片的示例
相關(guān)文章
基于scrapy實(shí)現(xiàn)的簡單蜘蛛采集程序
這篇文章主要介紹了基于scrapy實(shí)現(xiàn)的簡單蜘蛛采集程序,實(shí)例分析了scrapy實(shí)現(xiàn)采集程序的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-04-04
Python讀取圖片屬性信息的實(shí)現(xiàn)方法
這篇文章介紹了利用Python讀取圖片屬性信息的方法,讀取的內(nèi)容包括GPS 信息、圖片分辨率、圖片像素、設(shè)備商、拍攝設(shè)備等,有需要的朋友們可以參考借鑒。2016-09-09
Python通過字典實(shí)現(xiàn)高效數(shù)據(jù)管理的實(shí)戰(zhàn)指南
在Python編程中,字典(Dictionary)是最具實(shí)用價值的數(shù)據(jù)結(jié)構(gòu)之一,本文將通過實(shí)際場景拆解字典的運(yùn)作機(jī)制,揭示其成為Python高效數(shù)據(jù)管理工具的奧秘,希望對大家有所幫助2025-09-09
pycharm中import呈現(xiàn)灰色原因的解決方法
這篇文章主要介紹了pycharm中import呈現(xiàn)灰色原因的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Python實(shí)現(xiàn)列表轉(zhuǎn)Excel表格的第一列
這篇文章主要為大家詳細(xì)介紹了如何將Python中的列表轉(zhuǎn)換為Excel表格的第一列,并通過案例和代碼展示具體的操作步驟,希望可以幫助大家快速掌握這一技能2024-04-04
常見的在Python中實(shí)現(xiàn)單例模式的三種方法
這篇文章主要介紹了常見的在Python中實(shí)現(xiàn)單例模式的三種方法,單例模式在各個編程語言的學(xué)習(xí)中都是需要掌握的基礎(chǔ)知識,需要的朋友可以參考下2015-04-04
Python實(shí)現(xiàn)輸出某區(qū)間范圍內(nèi)全部素數(shù)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)輸出某區(qū)間范圍內(nèi)全部素數(shù)的方法,涉及Python數(shù)值運(yùn)算、排序、判斷等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
Python操作MySQL數(shù)據(jù)庫的基本方法(查詢與更新)
在工作中我們需要經(jīng)常對數(shù)據(jù)庫進(jìn)行操作,比如 Oracle、MySQL、SQL Sever等,這篇文章主要給大家介紹了關(guān)于Python操作MySQL數(shù)據(jù)庫的基本方法包括了數(shù)據(jù)查詢與數(shù)據(jù)更新(新增、刪除、修改),需要的朋友可以參考下2023-09-09

