Python實現為圖片添加水印的示例詳解
1、引言
小屌絲:魚哥,這個周末過得咋樣
小魚:酸爽~ ~
小屌絲:額~~ 我能想到的,是這樣嗎?
小魚:有多遠你走多遠。
小屌絲:唉,魚哥,你別說,我覺得這個圖片,跟你平時的表情挺貼切的。
小魚:你想咋的?。。?!
小屌絲:突然想到,能不能給你來一個專屬的圖片,例如追加水印啥的,讓別人無圖可盜?。?/p>
小魚:嘿~ 你別說,還真的可以哈,
小屌絲:那是, 要不教教我??
小魚:那我的換一個圖片,這個圖片有損我的顏值??!
小屌絲:這真的…
2、filestools介紹
我們平時幾乎都經歷過這種煩惱:
自己拍的很奈斯的照片,發(fā)到朋友圈后,總會被某些匿名好友借用,然而我們卻束手無策。
但是,現在就不用在煩惱了,只要把圖片添加你的專屬logo,別人就不會在征用了。
我們今天要分享的工具,就是filestools,
沒錯,沒看錯,是一個挺狠的第三方庫,這里面的模塊,不少。
我們來看看它的能耐!
2.1 安裝
在使用第三方庫前,都需要經理第一步:
安裝
pip install filestools
如果覺得每次都pip install 費時費力,那就看看小魚這兩篇:
《Python3,選擇Python自動安裝第三方庫,從此跟pip說拜拜??!》
《Python3,我低調的只用一行代碼,就導入Python所有庫!》
2.2 filestools 功能介紹
安裝完成,我們就來介紹一下filestools 都有哪些功能:
- 仿 Linux 樹形目錄顯示 tree 命令;
- 文件差異比較 diff 命令;
- 圖片加水印 marker 命令;
- curl 請求命令轉 python 請求代碼;
2.3 watermarker模塊介紹
我們今天來整的,就是第三個功能:圖片加水印,
add_mark()有8個參數,如下:
- file:圖片文件或圖片文件夾路徑
- mark:要添加的水印內容
- out:添加水印后的結果保存位置,默認生成到 output 文件夾
- color:添加水印后的結果保存位置,默認生成到 output 文件夾
- space:水印直接的間隔, 默認 75 個空格
- angle:水印旋轉角度,默認 30 度
- size:水印字體的大小,默認 50
- opacity:水印的透明度,默認 0.15
2.4 代碼實例
了解了add_mark()參數后,我們就來演練一下。
#-*- coding: utf-8 -*- # @Time : 2021-10-24 # @Author : Carl_DJ from watermarker.marker import add_mark # 讀取圖片,并設置水印角度,字體大小顏色等 add_mark('D:\Project\xxx\xxx\wtpic.jpg','關注Carl_奕然,學習更多python知識',angle=15,size=25,space=50,color='#c5094d')
我們執(zhí)行,在output 文件夾下,會生成的圖片
生成的圖片放大我看下:
我們在看下原圖:
小屌絲:奈斯了,奈斯了!
小魚:必須的 ~ ~
小屌絲:那剩余的三個功能,啥時候share一下?
小魚:這個… 這個…下次吧??!
補充
Python不僅能實現添加水印,還能為圖片去除水印
下面是實現的核心代碼
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] # 裁剪坐標為[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)建形狀和尺寸的結構元素 kernel = np.ones((3,3),np.uint8) #擴展待修復區(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)
到此這篇關于Python實現為圖片添加水印的示例詳解的文章就介紹到這了,更多相關Python 圖片水印內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現查找二叉搜索樹第k大的節(jié)點功能示例
這篇文章主要介紹了Python實現查找二叉搜索樹第k大的節(jié)點功能,結合實例形式分析了Python二叉搜索樹的定義、查找、遍歷等相關操作技巧,需要的朋友可以參考下2019-01-01解決pycharm remote deployment 配置的問題
今天小編就為大家分享一篇解決pycharm remote deployment 配置的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python數據可視化之使用matplotlib繪制簡單圖表
這篇文章主要為大家詳細介紹了使用matplotlib繪制簡單圖表的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03