App下載

如何用Python批量給圖片加水印?

特級(jí)不保護(hù)動(dòng)物 2023-07-04 09:49:00 瀏覽數(shù) (1999)
反饋

你是否想要給你的圖片添加一些個(gè)性化的水印,以保護(hù)你的版權(quán)或者展示你的品牌?如果你有很多圖片需要處理,手動(dòng)添加水印可能會(huì)很麻煩和耗時(shí)。幸運(yùn)的是,Python可以幫助你快速地批量給圖片加水印。在這篇文章中,我將介紹一種簡(jiǎn)單的方法,使用Python和Pillow庫(kù)來(lái)實(shí)現(xiàn)這個(gè)功能。

Pillow是一個(gè)流行的Python圖像處理庫(kù),它提供了很多方便的功能,如讀取、保存、調(diào)整和合成圖片。要使用Pillow,你需要先安裝它。你可以使用pip命令來(lái)安裝:

pip install Pillow

安裝好Pillow后,你就可以開(kāi)始編寫(xiě)代碼了。首先,你需要導(dǎo)入Pillow庫(kù),并定義一些變量,如水印圖片的路徑、原始圖片的文件夾、輸出圖片的文件夾等。例如:

from PIL import Image


watermark_path = "watermark.png" # 水印圖片的路徑
source_folder = "source" # 原始圖片的文件夾
output_folder = "output" # 輸出圖片的文件夾

接下來(lái),你需要打開(kāi)水印圖片,并將其轉(zhuǎn)換為RGBA模式,以保留透明度信息。然后,你可以使用os模塊來(lái)遍歷原始圖片的文件夾,找到所有的圖片文件,并對(duì)每一個(gè)圖片進(jìn)行處理。例如:

import os


watermark = Image.open(watermark_path).convert("RGBA") # 打開(kāi)并轉(zhuǎn)換水印圖片
watermark_width, watermark_height = watermark.size # 獲取水印圖片的尺寸


for filename in os.listdir(source_folder): # 遍歷原始圖片的文件夾
if filename.endswith(".jpg") or filename.endswith(".png"): # 判斷是否是圖片文件
image_path = os.path.join(source_folder, filename) # 拼接圖片文件的路徑
image = Image.open(image_path).convert("RGBA") # 打開(kāi)并轉(zhuǎn)換圖片文件
image_width, image_height = image.size # 獲取圖片文件的尺寸

在處理每一個(gè)圖片文件時(shí),你需要先計(jì)算水印圖片在原始圖片上的位置。這里我們假設(shè)水印圖片放在右下角,并留有一定的邊距。你可以根據(jù)自己的需求來(lái)調(diào)整這個(gè)位置。然后,你可以使用Image.alpha_composite()方法來(lái)將水印圖片合成到原始圖片上,并保存到輸出文件夾中。例如:

margin = 10 # 邊距
watermark_x = image_width - watermark_width - margin # 水印圖片在x軸上的位置
watermark_y = image_height - watermark_height - margin # 水印圖片在y軸上的位置


image.paste(watermark, (watermark_x, watermark_y), watermark) # 將水印圖片合成到原始圖片上
output_path = os.path.join(output_folder, filename) # 拼接輸出文件的路徑
image.save(output_path) # 保存輸出文件

這樣,你就完成了批量給圖片加水印的功能。你可以運(yùn)行這段代碼,并查看輸出文件夾中的結(jié)果。你會(huì)發(fā)現(xiàn)每一張?jiān)紙D片都被添加了一個(gè)水印。

這篇文章只是介紹了一種最基本的方法,你可以根據(jù)自己的需求來(lái)修改和優(yōu)化代碼,例如調(diào)整水印圖片的大小、透明度、角度等。希望這篇文章對(duì)你有所幫助。

0 人點(diǎn)贊