Python實現(xiàn)為圖片批量添加隨機水印
應部分朋友的問題寫的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實現(xiàn)為圖片批量添加隨機水印的文章就介紹到這了,更多相關Python圖片添加隨機水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
DataFrame數(shù)據(jù)框模糊查詢與去重方式
數(shù)據(jù)框模糊查詢通常使用contains函數(shù)和正則表達式來實現(xiàn),可以查詢以某個字符開頭、包含或結尾的數(shù)據(jù),若數(shù)據(jù)類型不一致可能會報錯,需統(tǒng)一為str類型,數(shù)據(jù)框去重則通過drop_duplicates函數(shù)實現(xiàn),可指定列進行去重,并有多種處理重復值的方式2024-09-09Python實現(xiàn)的下載網(wǎng)頁源碼功能示例
這篇文章主要介紹了Python實現(xiàn)的下載網(wǎng)頁源碼功能,涉及Python基于http請求與響應實現(xiàn)的網(wǎng)頁源碼讀取功能相關操作技巧,需要的朋友可以參考下2017-06-06Python使用Selenium時遇到網(wǎng)頁<body>劃不動的問題解決方法
如果在使用 Selenium 時遇到網(wǎng)頁的 <body> 劃不動的問題,這通常是因為頁面的滾動機制(例如,可能使用了一個具有固定高度的容器或自定義的滾動條)導致無法通過簡單的 JavaScript 實現(xiàn)滾動,可以通過以下方法來解決該問題2024-10-10Python使用psutil對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控
psutil庫可以實時獲取系統(tǒng)的一些信息,這樣就可以達到實時監(jiān)控系統(tǒng)的目的。本文對詳細講解了ython使用psutil對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控,感興趣的朋友可以看一看2021-08-08