Python利用filestools模塊實現(xiàn)水印添加
在前面的文章中很早有寫到關(guān)于添加水印的方法,但是過程還是較為復(fù)雜,最近發(fā)現(xiàn)的這款filestools非標(biāo)準(zhǔn)庫其實真正實現(xiàn)添加水印的只要一個函數(shù)的調(diào)用,一行代碼即可完成水印的添加。
通過watermarker模塊的add_mark函數(shù)就能輕松完成對圖片水印的添加,但是這里為了能夠?qū)⑵溟_發(fā)成一個可用的功能。里面加入了其他的業(yè)務(wù)代碼塊實現(xiàn)對批量圖片完成水印添加。
話不多說,我們直接進(jìn)入正題,還是使用pip的方式來完成對filestools非標(biāo)準(zhǔn)庫的安裝,這里我們使用的是豆瓣的鏡像站進(jìn)行安裝。
pip?install?filestools?-i?http://pypi.douban.com/simple/
將需要需要導(dǎo)入的第三方模塊列舉到下面,用于大家參考。
from?watermarker.marker?import?add_mark??#?添加水印模塊 import?os??#?系統(tǒng)操作模塊 from?loguru?import?logger??#?日志打印模塊
將需要的模塊導(dǎo)入到代碼塊以后,我們來編寫一個函數(shù)batch_to_mark用來實現(xiàn)批量的添加的水印的效果。實現(xiàn)思路是這樣的:將需要添加水印的圖片全部整理到一個文件夾下面,再通過遍歷該文件夾逐個對圖片實現(xiàn)水印的添加也就完成了批量添加水印的功能。
def?batch_to_mark(directory=None,?water_name=None): ????""" ????This?function?takes?a?directory?of?.txt?files?and?converts?them?to?.mark?files ????:param?directory:?the?directory?where?the?files?are?located ????:param?water_name:?The?name?of?the?watermark?image ????""" ????if?directory?is?None?or?water_name?is?None: ????????logger.info('文件夾地址或水印名稱不能為空!') ????????return ????for?file_name?in?os.listdir(directory): ????????logger.info('當(dāng)前文件名稱:{0},即將開始添加水印操作!'.format(file_name)) ????????add_mark(file=os.path.join(directory,?file_name),?out=os.getcwd(),?mark=water_name, ?????????????????opacity=0.3,?angle=30,?space=40,?size=30) ????????logger.info('當(dāng)前文件名稱:{0},已經(jīng)完成添加水印操作!'.format(file_name)) if?__name__?==?'__main__': ????batch_to_mark(directory='C:/test/images/',?water_name=u'Python?集中營')
這樣批量添加水印的代碼塊就開發(fā)完成了,但是由于上面過程中使用到的add_mark函數(shù)有些參數(shù)是用于調(diào)整水印的位置大小、間距等參數(shù)的,所以這里專門說明一下以便大家可以根據(jù)自己的圖片情況來調(diào)整。
''' 函數(shù)名稱:add_mark,用于實現(xiàn)添加水印。 file:原始照片; mark:使用哪些字符作為水??; out:添加水印后保存的位置; color:水印字體的顏色,默認(rèn)顏色#8B8B1B; size:水印字體的大小,默認(rèn)50; opacity:水印字體的透明度,默認(rèn)0.15; space:水印字體之間的間隔, 默認(rèn)75個空格; angle:水印字體的旋轉(zhuǎn)角度,默認(rèn)30度; '''
最后,我選用了幾個'亞索'的帥照來測試一下結(jié)果,圖片是我去Google上下載的,下面我選用了兩張來展示一下我們在添加完成水印的效果吧!
補(bǔ)充
當(dāng)然還可以實現(xiàn)批量填加多張圖片水印,下面是實現(xiàn)代碼
from watermarker.marker import add_mark import os # 用os模塊讀取文件夾所有內(nèi)容 ,使用 files 接收。 files = os.listdir('C:\\Users\\青燈教育\\Desktop\\111') for file in files: add_mark('C:\\Users\\青燈教育\\Desktop\\111\\'+file, mark='點(diǎn)贊、關(guān)注、收藏呀', opacity=0.5)
到此這篇關(guān)于Python利用filestools模塊實現(xiàn)水印添加的文章就介紹到這了,更多相關(guān)Python filestools水印添加內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python matplotlib繪圖設(shè)置圖例案例
這篇文章主要給大家分享Python matplotlib繪圖設(shè)置圖例案例,過程會學(xué)到edgecolor 圖例邊框線顏色 facecolor 圖例背景色 shadow 是否添加陰影 title 圖例標(biāo)題 fontsize 設(shè)置字體大小,小編覺得挺有意思的,感興趣的小伙伴也可以參考一下2021-12-12Python報錯ModuleNotFoundError: No module named&
在嘗試導(dǎo)入TensorBoard模塊時,你可能會遇到ModuleNotFoundError: No module named 'tensorboard'的錯誤,下面我們來分析這個問題并提供解決方案,需要的朋友可以參考下2024-09-09Python繼承和子類從Person到Student演示實例
這篇文章主要為大家介紹了Python繼承和子類從Person到Student演示實例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10python 3調(diào)用百度OCR API實現(xiàn)剪貼板文字識別
這篇文章主要為大家詳細(xì)介紹了python 3調(diào)用百度OCR API實現(xiàn)剪貼板文字識別,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09解決Python print 輸出文本顯示 gbk 編碼錯誤問題
這篇文章主要介紹了解決Python print 輸出文本顯示 gbk 編碼錯誤問題,本文給出了三種解決方法,需要的朋友可以參考下2018-07-07合并Excel工作薄中成績表的VBA代碼,非常適合教育一線的朋友
每次學(xué)生考試,評分完畢之后,把每個科的成績收集起來,就得到了一個有若干工作表,每個表有學(xué)生學(xué)號、分?jǐn)?shù)等列的Excel工作薄。2009-04-04Python如何使用Eel和HTML開發(fā)桌面應(yīng)用
這篇文章主要介紹了Python使用Eel和HTML開發(fā)桌面應(yīng)用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01用python實現(xiàn)域名資產(chǎn)監(jiān)控的詳細(xì)步驟
域名資產(chǎn)監(jiān)控,通過輸入一個主域名,找到該域名對應(yīng)的ip地址所在的服務(wù)器的端口開閉情況,本文重點(diǎn)給大家介紹用python實現(xiàn)域名資產(chǎn)監(jiān)控的問題,需要的朋友可以參考下2021-11-11