Python實(shí)現(xiàn)為圖片批量添加隨機(jī)水印
應(yīng)部分朋友的問(wèn)題寫(xiě)的Python,
須提前安裝第三方庫(kù),安裝PIL庫(kù)(Pillow):在命令行中輸入pip install pillow進(jìn)行安裝;
將此py文件放入根目錄,
另外根目錄中有三個(gè)文件夾。
watermark(水印文件夾)、original(需加水印圖片的文件夾)、output(成品文件夾)
代碼如下:
from PIL import Image, ImageDraw import os, random water_path = './watermark' # 水印文件夾路徑 watermark_list = os.listdir(water_path) def do(file_name): # 打開(kāi)原始圖片和水印圖片 original_image = Image.open(file_name) random_mark = random.choice(watermark_list) # 選擇隨機(jī)水印圖片 # print(random_mark) watermark_image = Image.open(f'{water_path}/{random_mark}') # 將水印圖片縮放到合適的大小 watermark_width, watermark_height = watermark_image.size base_width, base_height = original_image.size watermark_image = watermark_image.resize((base_width,int(base_width/watermark_width*watermark_height))) # 創(chuàng)建一個(gè)和原始圖片相同大小的空白畫(huà)布 canvas = Image.new('RGBA', original_image.size) # 將原始圖片粘貼到畫(huà)布上 canvas.paste(original_image, (0, 0)) # 將水印圖片粘貼到畫(huà)布上 canvas.paste(watermark_image, (0, 0)) # 保存帶有水印的圖片 name = file_name.split("\\")[-1] canvas.save(f'./output/do_{name}') # 成品保存路徑 print(f">>>> {name} 添加 {random_mark} 水印 成功。") for root, dirs, files in os.walk("./original"): # 需要加水印的文件夾路徑 for name in files: file_name = os.path.join(root, name) do(file_name)
以下為一個(gè)Python給圖片添加文字水印的示例
from PIL import Image, ImageDraw, ImageFont def add_watermark(input_image_path, output_image_path, watermark_text): # 打開(kāi)原始圖片 base_image = Image.open(input_image_path).convert("RGBA") # 創(chuàng)建一個(gè)可以在給定圖像上繪圖的對(duì)象 draw = ImageDraw.Draw(base_image) # 設(shè)置字體和大小 font = ImageFont.truetype("arial.ttf", 15) # 水印文字的字體,大小,這是英文字體不支持中文,換成自己的字體即可 # 在圖片上添加水印,設(shè)置水印位置和顏色等 draw.text((20,20), watermark_text, fill=color, font=font) # 保存帶有水印的圖片 base_image.save(output_image_path) # 使用示例 add_watermark("../img-test/orig.jpg", # 需加水印的圖片 "../img-test/orig--out.png", # 最終的圖片 "Watermark Text") # 水印文字
以下一個(gè)給圖片添加透明圖片水印的例子
from PIL import Image # 打開(kāi)背景圖片和水印圖片 background = Image.open('../img-test/orig.jpg') # 需加水印的圖片 watermark = Image.open('../img-test/mark.png').convert("RGBA") # 透明背景的水印圖片 # 將水印圖片粘貼到背景圖片上 background.paste(watermark, (0, 0),mask=watermark) # 水印位置(0,0) # 保存合并后的圖片 background.save('../img-test/orig_mark.png')
到此這篇關(guān)于Python實(shí)現(xiàn)為圖片批量添加隨機(jī)水印的文章就介紹到這了,更多相關(guān)Python圖片添加隨機(jī)水印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
DataFrame數(shù)據(jù)框模糊查詢(xún)與去重方式
數(shù)據(jù)框模糊查詢(xún)通常使用contains函數(shù)和正則表達(dá)式來(lái)實(shí)現(xiàn),可以查詢(xún)以某個(gè)字符開(kāi)頭、包含或結(jié)尾的數(shù)據(jù),若數(shù)據(jù)類(lèi)型不一致可能會(huì)報(bào)錯(cuò),需統(tǒng)一為str類(lèi)型,數(shù)據(jù)框去重則通過(guò)drop_duplicates函數(shù)實(shí)現(xiàn),可指定列進(jìn)行去重,并有多種處理重復(fù)值的方式2024-09-09Python實(shí)現(xiàn)的下載網(wǎng)頁(yè)源碼功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的下載網(wǎng)頁(yè)源碼功能,涉及Python基于http請(qǐng)求與響應(yīng)實(shí)現(xiàn)的網(wǎng)頁(yè)源碼讀取功能相關(guān)操作技巧,需要的朋友可以參考下2017-06-06Django傳遞數(shù)據(jù)給前端的3種方式小結(jié)
Django從后臺(tái)往前臺(tái)傳遞數(shù)據(jù)時(shí)有多種方法可以實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Django傳遞數(shù)據(jù)給前端的3種方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01Python使用Selenium時(shí)遇到網(wǎng)頁(yè)<body>劃不動(dòng)的問(wèn)題解決方法
如果在使用 Selenium 時(shí)遇到網(wǎng)頁(yè)的 <body> 劃不動(dòng)的問(wèn)題,這通常是因?yàn)轫?yè)面的滾動(dòng)機(jī)制(例如,可能使用了一個(gè)具有固定高度的容器或自定義的滾動(dòng)條)導(dǎo)致無(wú)法通過(guò)簡(jiǎn)單的 JavaScript 實(shí)現(xiàn)滾動(dòng),可以通過(guò)以下方法來(lái)解決該問(wèn)題2024-10-10Python使用psutil對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行采集監(jiān)控
psutil庫(kù)可以實(shí)時(shí)獲取系統(tǒng)的一些信息,這樣就可以達(dá)到實(shí)時(shí)監(jiān)控系統(tǒng)的目的。本文對(duì)詳細(xì)講解了ython使用psutil對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行采集監(jiān)控,感興趣的朋友可以看一看2021-08-08