Python實(shí)現(xiàn)為圖片添加水印的示例詳解
1、引言
小屌絲:魚哥,這個(gè)周末過得咋樣
小魚:酸爽~ ~
小屌絲:額~~ 我能想到的,是這樣嗎?

小魚:有多遠(yuǎn)你走多遠(yuǎn)。
小屌絲:唉,魚哥,你別說,我覺得這個(gè)圖片,跟你平時(shí)的表情挺貼切的。
小魚:你想咋的!?。?!
小屌絲:突然想到,能不能給你來一個(gè)專屬的圖片,例如追加水印啥的,讓別人無圖可盜??!
小魚:嘿~ 你別說,還真的可以哈,
小屌絲:那是, 要不教教我??
小魚:那我的換一個(gè)圖片,這個(gè)圖片有損我的顏值?。?/p>
小屌絲:這真的…
2、filestools介紹
我們平時(shí)幾乎都經(jīng)歷過這種煩惱:
自己拍的很奈斯的照片,發(fā)到朋友圈后,總會(huì)被某些匿名好友借用,然而我們卻束手無策。
但是,現(xiàn)在就不用在煩惱了,只要把圖片添加你的專屬logo,別人就不會(huì)在征用了。

我們今天要分享的工具,就是filestools,
沒錯(cuò),沒看錯(cuò),是一個(gè)挺狠的第三方庫(kù),這里面的模塊,不少。
我們來看看它的能耐!
2.1 安裝
在使用第三方庫(kù)前,都需要經(jīng)理第一步:
安裝
pip install filestools
如果覺得每次都pip install 費(fèi)時(shí)費(fèi)力,那就看看小魚這兩篇:
《Python3,選擇Python自動(dòng)安裝第三方庫(kù),從此跟pip說拜拜??!》
《Python3,我低調(diào)的只用一行代碼,就導(dǎo)入Python所有庫(kù)!》
2.2 filestools 功能介紹
安裝完成,我們就來介紹一下filestools 都有哪些功能:
- 仿 Linux 樹形目錄顯示 tree 命令;
- 文件差異比較 diff 命令;
- 圖片加水印 marker 命令;
- curl 請(qǐng)求命令轉(zhuǎn) python 請(qǐng)求代碼;
2.3 watermarker模塊介紹
我們今天來整的,就是第三個(gè)功能:圖片加水印,
add_mark()有8個(gè)參數(shù),如下:
- file:圖片文件或圖片文件夾路徑
- mark:要添加的水印內(nèi)容
- out:添加水印后的結(jié)果保存位置,默認(rèn)生成到 output 文件夾
- color:添加水印后的結(jié)果保存位置,默認(rèn)生成到 output 文件夾
- space:水印直接的間隔, 默認(rèn) 75 個(gè)空格
- angle:水印旋轉(zhuǎn)角度,默認(rèn) 30 度
- size:水印字體的大小,默認(rèn) 50
- opacity:水印的透明度,默認(rèn) 0.15
2.4 代碼實(shí)例
了解了add_mark()參數(shù)后,我們就來演練一下。
#-*- coding: utf-8 -*-
# @Time : 2021-10-24
# @Author : Carl_DJ
from watermarker.marker import add_mark
# 讀取圖片,并設(shè)置水印角度,字體大小顏色等
add_mark('D:\Project\xxx\xxx\wtpic.jpg','關(guān)注Carl_奕然,學(xué)習(xí)更多python知識(shí)',angle=15,size=25,space=50,color='#c5094d')
我們執(zhí)行,在output 文件夾下,會(huì)生成的圖片

生成的圖片放大我看下:

我們?cè)诳聪略瓐D:

小屌絲:奈斯了,奈斯了!
小魚:必須的 ~ ~
小屌絲:那剩余的三個(gè)功能,啥時(shí)候share一下?
小魚:這個(gè)… 這個(gè)…下次吧??!
補(bǔ)充
Python不僅能實(shí)現(xiàn)添加水印,還能為圖片去除水印
下面是實(shí)現(xiàn)的核心代碼
import cv2 import numpy as np from PIL import Image import os ? dir = os.getcwd() path = "1.jpg" newPath = "new.jpg" img=cv2.imread(path,1) hight,width,depth=img.shape[0:3] ? #截取 cropped = img[int(hight*0.8):hight, int(width*0.7):width] # 裁剪坐標(biāo)為[y0:y1, x0:x1] cv2.imwrite(newPath, cropped) imgSY = cv2.imread(newPath,1) ? #圖片二值化處理,把[200,200,200]-[250,250,250]以外的顏色變成0 thresh = cv2.inRange(imgSY,np.array([200,200,200]),np.array([250,250,250])) #創(chuàng)建形狀和尺寸的結(jié)構(gòu)元素 kernel = np.ones((3,3),np.uint8) #擴(kuò)展待修復(fù)區(qū)域 hi_mask = cv2.dilate(thresh,kernel,iterations=10) specular = cv2.inpaint(imgSY,hi_mask,5,flags=cv2.INPAINT_TELEA) cv2.imwrite(newPath, specular) ? #覆蓋圖片 imgSY = Image.open(newPath) img = Image.open(path) img.paste(imgSY, (int(width*0.7),int(hight*0.8),width,hight)) img.save(newPath)
到此這篇關(guān)于Python實(shí)現(xiàn)為圖片添加水印的示例詳解的文章就介紹到這了,更多相關(guān)Python 圖片水印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?BeautifulSoup4實(shí)現(xiàn)數(shù)據(jù)解析與提取
Beautiful?Soup是一個(gè)Python的庫(kù),用于解析HTML和XML文檔,提供了方便的數(shù)據(jù)提取和操作功能,下面小編就來和大家詳細(xì)聊聊如何利用BeautifulSoup4實(shí)現(xiàn)數(shù)據(jù)解析與提取吧2023-10-10
使用Python生成F分布表并導(dǎo)出為Excel文件的代碼實(shí)現(xiàn)
在統(tǒng)計(jì)分析中,F FF分布是一種非常重要的連續(xù)概率分布,廣泛應(yīng)用于方差分析、回歸分析的顯著性檢驗(yàn)等場(chǎng)景,為了方便查閱和使用F分布的臨界值,本文給大家介紹了使用Python生成F分布表并導(dǎo)出為Excel文件,需要的朋友可以參考下2024-11-11
解決django跨域的問題小結(jié)(Hbuilder X)
使用Django開發(fā)時(shí),可能會(huì)遇到跨域問題,尤其是當(dāng)后端與HbuilderX開發(fā)的前端結(jié)合使用時(shí),解決此問題的關(guān)鍵步驟包括安裝django-cors-headers庫(kù),并在Django的settings.py中進(jìn)行相應(yīng)配置,本文給大家介紹解決django跨域的問題小結(jié),感興趣的朋友一起看看吧2024-10-10
Python可視化學(xué)習(xí)之seaborn調(diào)色盤
seaborn是在matplotlib基礎(chǔ)上封裝的,所以matplotlib的調(diào)色盤seaborn都可以使用。本文系統(tǒng)介紹seaborn調(diào)色盤,相較于matplotlib,有諸多不同,需要的可以參考一下2022-02-02
python中Matplotlib實(shí)現(xiàn)繪制3D圖的示例代碼
本篇文章主要介紹了python中Matplotlib實(shí)現(xiàn)繪制3D圖的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09
從零學(xué)python系列之?dāng)?shù)據(jù)處理編程實(shí)例(二)
這篇文章主要介紹了python數(shù)據(jù)處理編程實(shí)例,需要的朋友可以參考下2014-05-05

