水印藝術(shù)創(chuàng)造:逐步學(xué)習(xí)Python中的添加水印精華
歡迎來到本篇文章,我們將一起探討如何使用Python給圖片添加水印。水印是一種在圖片上添加文字或圖標(biāo)的技術(shù),常用于版權(quán)保護(hù)、品牌展示等目的。無論您是初學(xué)者還是有一定編程經(jīng)驗(yàn)的開發(fā)者,本文將從入門到精通地引導(dǎo)您,幫助您理解如何使用Python進(jìn)行圖片水印處理。
準(zhǔn)備工作
在開始之前,我們需要安裝Pillow庫,它是Python Imaging Library(PIL)的一個(gè)分支,用于處理圖像??梢允褂靡韵旅钍褂胮ip進(jìn)行安裝:
pip install Pillow
給圖片添加文字水印 首先,我們來學(xué)習(xí)如何給圖片添加文字水印。下面是一個(gè)示例,演示了如何使用Pillow庫在圖片上添加文字水?。?/p>
from PIL import Image, ImageDraw, ImageFont
# 打開圖片
image = Image.open("image.png")
# 創(chuàng)建繪制對(duì)象
draw = ImageDraw.Draw(image)
# 定義水印文字和字體
watermark_text = "添加水印"
font = ImageFont.truetype("simhei.ttf", 36) # 使用支持中文的字體文件
# 獲取文字大小
text_width, text_height = draw.textsize(watermark_text, font)
# 計(jì)算水印位置
image_width, image_height = image.size
x = image_width - text_width - 100
y = image_height - text_height - 100
# 添加水印文字
draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
# 保存結(jié)果
image.save("image_with_watermark.jpg")
# 顯示添加水印后的圖片
image.show()
在這個(gè)例子中,我們首先打開圖片,然后使用ImageDraw.Draw創(chuàng)建繪制對(duì)象。定義水印文字和字體后,使用draw.textsize獲取文字大小,計(jì)算水印的位置,并使用draw.text在圖片上添加水印文字。最后,保存結(jié)果圖片并顯示出來。圖片
給圖片添加圖標(biāo)水印
除了文字水印,我們還可以給圖片添加圖標(biāo)水印。下面是一個(gè)示例,演示了如何使用Pillow庫在圖片上添加圖標(biāo)水?。?/p>
from PIL import Image
# 打開圖片和圖標(biāo)
image = Image.open("image.jpg")
icon = Image.open("icon.png")
# 調(diào)整圖標(biāo)大小
icon = icon.resize((100, 100))
# 定義水印位置
image_width, image_height = image.size
icon_width, icon_height = icon.size
x = image_width - icon_width - 10
y = image_height - icon_height - 10
# 添加圖標(biāo)水印
image.paste(icon, (x, y), icon)
# 保存結(jié)果
image.save("image_with_icon_watermark.jpg")
# 顯示添加圖標(biāo)水印后的圖片
image.show()
在這個(gè)例子中,我們首先打開圖片和圖標(biāo),然后使用resize調(diào)整圖標(biāo)的大小。定義圖標(biāo)水印的位置后,使用paste方法將圖標(biāo)粘貼到圖片上,并保存結(jié)果圖片并顯示出來。
給圖片批量添加水印
如果您需要給多張圖片批量添加水印,可以使用循環(huán)來實(shí)現(xiàn)。下面是一個(gè)示例,演示了如何使用循環(huán)批量給圖片添加文字水?。?/p>
from PIL import Image, ImageDraw, ImageFont
import os
# 批量處理文件夾中的圖片
input_folder = "input_images"
output_folder = "output_images"
watermark_text = "Sample Watermark"
font = ImageFont.truetype("arial.ttf", 36)
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for filename in os.listdir(input_folder):
if filename.endswith(".jpg"):
image = Image.open(os.path.join(input_folder, filename))
draw = ImageDraw.Draw(image)
text_width, text_height = draw.textsize(watermark_text, font)
image_width, image_height = image.size
x = image_width - text_width - 10
y = image_height - text_height - 10
draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
output_path = os.path.join(output_folder, filename)
image.save(output_path)
在這個(gè)例子中,我們首先指定輸入和輸出文件夾,并定義水印文字和字體。然后,使用循環(huán)遍歷輸入文件夾中的圖片,依次給每張圖片添加水印并保存到輸出文件夾中。
總結(jié)
本文深入介紹了如何使用Python中的Pillow庫給圖片添加水印,包括文字水印和圖標(biāo)水印。我們學(xué)習(xí)了如何單獨(dú)處理一張圖片,也學(xué)習(xí)了如何批量處理多張圖片。通過本文,您可以掌握給圖片添加水印的基本技巧,為您的圖片保護(hù)和品牌展示提供了實(shí)用的工具。希望本文能幫助您更好地使用Python進(jìn)行圖片水印處理,從入門到精通。