python3使用PIL添加中文文本水印背景方法詳解
環(huán)境:Windows10_x64
Python版本 :3.9.2
Pillow版本:9.1.1
寫(xiě)的博客文章被轉(zhuǎn)載且不注明出處的情況時(shí)有發(fā)生,甚至有部分轉(zhuǎn)載者將文章配圖添加自己的水??!為了保護(hù)作者勞動(dòng)成果,添加水印是一個(gè)可選項(xiàng)。
今天記錄下Windows10環(huán)境下使用python3.9簡(jiǎn)單實(shí)現(xiàn)批量添加中文文本水印背景的過(guò)程,并提供示例代碼
一、背景描述
python的PIL庫(kù)可進(jìn)行圖片處理,十分強(qiáng)大,可使用該庫(kù)實(shí)現(xiàn)圖片添加水印背景的需求。
可通過(guò)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、生成文本背景
可通過(guò)ImageDraw.text實(shí)現(xiàn):
https://pillow.readthedocs.io/en/stable/reference/ImageDraw.html
中文文本可通過(guò)設(shè)置正確的字體實(shí)現(xiàn):
font = ImageFont.truetype("simsun.ttc", fontSize,encoding="utf-8")
文本顏色可通過(guò)RGB值設(shè)置,示例如下:
fill=(106,106,106)
2、旋轉(zhuǎn)文本
可通過(guò)rotate函數(shù)實(shí)現(xiàn):
https://pillow.readthedocs.io/en/stable/reference/Image.html
3、設(shè)置水印
可通過(guò)Image.paste函數(shù)實(shí)現(xiàn):
https://pillow.readthedocs.io/en/stable/reference/Image.html
4、生成水印背景
1)需要通過(guò)循環(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 + 1
2)導(dǎo)出時(shí)需要添加質(zhì)量參數(shù),避免導(dǎo)出的圖片失真;
img.save(dstFile,optimize=True, quality=100)
5、多進(jìn)程加速
批量添加文本水印背景時(shí),可使用進(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python3讀取圖片并灰度化圖片的四種方法(OpenCV、PIL.Image、TensorFlow方法)總結(jié)
- Python3安裝Pillow與PIL的方法
- 解決Python3用PIL的ImageFont輸出中文亂碼的問(wèn)題
- 詳解python3安裝pillow后報(bào)錯(cuò)沒(méi)有pillow模塊以及沒(méi)有PIL模塊問(wèn)題解決
- python3用PIL把圖片轉(zhuǎn)換為RGB圖片的實(shí)例
- win10下python3.8的PIL庫(kù)安裝過(guò)程
- Python3用tkinter和PIL實(shí)現(xiàn)看圖工具
- 解決python3 安裝不了PIL的問(wèn)題
- python3 pillow生成簡(jiǎn)單驗(yàn)證碼圖片的示例
相關(guān)文章
解決usageerror: line magic function "
這篇文章主要介紹了解決usageerror: line magic function "%%time" not found問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01python實(shí)現(xiàn)摳圖給證件照換背景源碼
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)摳圖給證件照換背景源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08python數(shù)學(xué)建模之Matplotlib?實(shí)現(xiàn)圖片繪制
這篇文章主要介紹了python數(shù)學(xué)建模之Matplotlib?實(shí)現(xiàn)圖片繪制,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07Python+mpld3實(shí)現(xiàn)交互式Matplotlib圖表
通過(guò)結(jié)合使用Matplotlib和mpld3庫(kù),我們可以輕松地創(chuàng)建交互式圖表,使得數(shù)據(jù)可視化更加生動(dòng)和易于理解,下面就跟隨小編一起來(lái)學(xué)習(xí)一下具體實(shí)現(xiàn)方法吧2024-10-10python numpy之np.random的隨機(jī)數(shù)函數(shù)使用介紹
這篇文章主要介紹了python numpy之np.random的隨機(jī)數(shù)函數(shù)使用介紹,需要的朋友可以參考下2019-10-10使用python BeautifulSoup庫(kù)抓取58手機(jī)維修信息
這篇文章主要介紹了一個(gè)使用python抓取58手機(jī)的精準(zhǔn)商家信息,使用BeautifulSoup API的方法2013-11-11淺談numpy中函數(shù)resize與reshape,ravel與flatten的區(qū)別
這篇文章主要介紹了淺談numpy中函數(shù)resize與reshape,ravel與flatten的區(qū)別介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06