Python實現為圖片批量添加隨機水印
更新時間:2023年11月23日 11:44:14 作者:mYlEaVeiSmVp
這篇文章主要為大家詳細介紹了如何使用Python實現為圖片批量添加隨機水印,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
應部分朋友的問題寫的Python,
須提前安裝第三方庫,安裝PIL庫(Pillow):在命令行中輸入pip install pillow進行安裝;
將此py文件放入根目錄,
另外根目錄中有三個文件夾。
watermark(水印文件夾)、original(需加水印圖片的文件夾)、output(成品文件夾)
代碼如下:
from PIL import Image, ImageDraw
import os, random
water_path = './watermark' # 水印文件夾路徑
watermark_list = os.listdir(water_path)
def do(file_name):
# 打開原始圖片和水印圖片
original_image = Image.open(file_name)
random_mark = random.choice(watermark_list) # 選擇隨機水印圖片
# 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)建一個和原始圖片相同大小的空白畫布
canvas = Image.new('RGBA', original_image.size)
# 將原始圖片粘貼到畫布上
canvas.paste(original_image, (0, 0))
# 將水印圖片粘貼到畫布上
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)以下為一個Python給圖片添加文字水印的示例
from PIL import Image, ImageDraw, ImageFont
def add_watermark(input_image_path, output_image_path, watermark_text):
# 打開原始圖片
base_image = Image.open(input_image_path).convert("RGBA")
# 創(chuàng)建一個可以在給定圖像上繪圖的對象
draw = ImageDraw.Draw(base_image)
# 設置字體和大小
font = ImageFont.truetype("arial.ttf", 15) # 水印文字的字體,大小,這是英文字體不支持中文,換成自己的字體即可
# 在圖片上添加水印,設置水印位置和顏色等
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") # 水印文字以下一個給圖片添加透明圖片水印的例子
from PIL import Image
# 打開背景圖片和水印圖片
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')到此這篇關于Python實現為圖片批量添加隨機水印的文章就介紹到這了,更多相關Python圖片添加隨機水印內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
聊聊python在linux下與windows下導入模塊的區(qū)別說明
這篇文章主要介紹了聊聊python在linux下與windows下導入模塊的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

