Python批量添加圖片水印的實(shí)現(xiàn)
一、前言
現(xiàn)在盜圖是非常常見的事情,許多人在使用圖片時(shí)都不會(huì)標(biāo)注圖片的出處或者提及作者,這個(gè)時(shí)候水印就是個(gè)很好的東西了。我們可以給圖片添加水印后再分享出去,這樣就可以讓其它人知道圖片作者相關(guān)的信息。今天我們就帶大家來實(shí)現(xiàn)水印的添加。
二、文字水印
在添加水印的時(shí)候,我們比較常用的就是文字水印。比如@ZackSock
、@juejin:ZackSock
等。這種水印的添加非常簡單,只需要使用到Pillow
模塊的添加文字的操作即可,代碼如下:
from PIL import Image, ImageFont, ImageDraw # 加載字體 font = ImageFont.truetype('msyh.ttc', 60) # 加載圖片 im = Image.open('im.jpg') # 創(chuàng)建畫筆 drawer = ImageDraw.Draw(im) # 準(zhǔn)備文本 text = '@ZackSock' # 繪制文本 drawer.text((0, 0), text, (0, 255, 0), font) im.show()
這里需要注意幾個(gè)地方,第一個(gè)就是水印大小。水印大小也就是文字大小,這個(gè)是由:
font = ImageFont.truetype('msyh.ttc', 60)
中第二個(gè)參數(shù)決定的,因此我們可以通過調(diào)節(jié)該參數(shù)調(diào)整水印大小。
第二點(diǎn)就是水印位置和水印顏色,這個(gè)就是通過:
drawer.text((0, 0), text, (0, 255, 0), font)
中第一個(gè)和第三個(gè)參數(shù)決定的,其中(0,0)表示水印左上角的坐標(biāo),而(0,255,0)表示水印的RGB值,具體調(diào)節(jié)可以參考RGB配色表。
三、圖片水印
文字水印使用起來比較方便,但是有時(shí)候我們更習(xí)慣將有代表性的logo作為水印,這個(gè)時(shí)候就可以圖片水印了,代碼如下:
from PIL import Image im = Image.open('origin.png').convert('RGBA') watermark = Image.open('watermark.png').convert('RGBA') w, h = im.size watermark.thumbnail((w//6, h//6)) r, g, b, a = watermark.split() # 獲取水印尺寸 w2, h2 = watermark.size # 計(jì)算位置 x = w-w2 y = h-h2 # 粘貼 im.paste(watermark, (x, y), mask=a) im.show()
效果圖如下:
到此這篇關(guān)于Python批量添加圖片水印的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python批量添加圖片水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 高級(jí)庫15 個(gè)讓新手愛不釋手(推薦)
對(duì)于初學(xué)者來說,這是一種簡單易學(xué)的編程語言;另一個(gè)原因:大量開箱即用的第三方庫,正是 23 萬個(gè)由用戶提供的軟件包使得 Python 真正強(qiáng)大和流行,本文給大家分享15 個(gè)讓新手愛不釋手Python 高級(jí)庫的相關(guān)知識(shí),感興趣的朋友一起看看吧2021-05-05詳解python函數(shù)傳參傳遞dict/list/set等類型的問題
這篇文章主要介紹了詳解python函數(shù)傳參傳遞dict/list/set等類型的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04python如何獲取apk的packagename和activity
這篇文章主要介紹了python如何獲取apk的packagename和activity,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01