Python實(shí)現(xiàn)為圖片添加水印的示例詳解
1、引言
小屌絲:魚哥,這個(gè)周末過得咋樣
小魚:酸爽~ ~
小屌絲:額~~ 我能想到的,是這樣嗎?
小魚:有多遠(yuǎn)你走多遠(yuǎn)。
小屌絲:唉,魚哥,你別說,我覺得這個(gè)圖片,跟你平時(shí)的表情挺貼切的。
小魚:你想咋的?。。?!
小屌絲:突然想到,能不能給你來一個(gè)專屬的圖片,例如追加水印啥的,讓別人無圖可盜?。?/p>
小魚:嘿~ 你別說,還真的可以哈,
小屌絲:那是, 要不教教我??
小魚:那我的換一個(gè)圖片,這個(gè)圖片有損我的顏值??!
小屌絲:這真的…
2、filestools介紹
我們平時(shí)幾乎都經(jīng)歷過這種煩惱:
自己拍的很奈斯的照片,發(fā)到朋友圈后,總會(huì)被某些匿名好友借用,然而我們卻束手無策。
但是,現(xiàn)在就不用在煩惱了,只要把圖片添加你的專屬logo,別人就不會(huì)在征用了。
我們今天要分享的工具,就是filestools,
沒錯(cuò),沒看錯(cuò),是一個(gè)挺狠的第三方庫,這里面的模塊,不少。
我們來看看它的能耐!
2.1 安裝
在使用第三方庫前,都需要經(jīng)理第一步:
安裝
pip install filestools
如果覺得每次都pip install 費(fèi)時(shí)費(fèi)力,那就看看小魚這兩篇:
《Python3,選擇Python自動(dòng)安裝第三方庫,從此跟pip說拜拜??!》
《Python3,我低調(diào)的只用一行代碼,就導(dǎo)入Python所有庫!》
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實(shí)現(xiàn)查找二叉搜索樹第k大的節(jié)點(diǎn)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)查找二叉搜索樹第k大的節(jié)點(diǎn)功能,結(jié)合實(shí)例形式分析了Python二叉搜索樹的定義、查找、遍歷等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01解決pycharm remote deployment 配置的問題
今天小編就為大家分享一篇解決pycharm remote deployment 配置的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06python向量化與for循環(huán)耗時(shí)對(duì)比分析
這篇文章主要介紹了python向量化與for循環(huán)耗時(shí)對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Python中使用實(shí)現(xiàn)輸出哈沙德數(shù)的多種方法小結(jié)
哈沙德數(shù)(Harshad?Number),又稱Niven數(shù),是指一個(gè)自然數(shù),它可以被它的各位數(shù)字之和整除,本文將探討如何使用多種不同的方法來判斷一個(gè)數(shù)字是否是哈沙德數(shù),感興趣的可以了解下2024-01-01Python數(shù)據(jù)可視化之使用matplotlib繪制簡單圖表
這篇文章主要為大家詳細(xì)介紹了使用matplotlib繪制簡單圖表的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03對(duì)python中的float除法和整除法的實(shí)例詳解
今天小編就為大家分享一篇對(duì)python中的float除法和整除法的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07