東莞做網(wǎng)站要多少錢seo外鏈專員
python給圖片加上圖片水印
- 作用
- 效果
- 代碼
作用
- 給圖片加上圖片水印
- 圖片水印的透明度,位置可自定義
效果
原始圖片:
水印圖片:
添加水印后的圖片:
代碼
from PIL import Image, ImageDraw, ImageFontdef add_watermark(input_image_path, watermark_image_path, output_image_path, position=(0.5, 0.5), opacity=0.5):"""在圖片上添加水印:param input_image_path: 輸入圖片路徑:param watermark_image_path: 水印圖片路徑:param output_image_path: 輸出圖片路徑:param position: 水印位置,默認(rèn)為圖片中心 (x, y) 坐標(biāo)值在0到1之間:param opacity: 水印的不透明度,1為完全不透明,0為完全透明:return: None"""base_image = Image.open(input_image_path).convert("RGBA")watermark = Image.open(watermark_image_path).convert("RGBA")# 獲取圖片尺寸base_width, base_height = base_image.sizewatermark_width, watermark_height = watermark.size# 計算水印位置left = int(base_width * position[0] - watermark_width / 2)top = int(base_height * position[1] - watermark_height / 2)# 限制水印位置在圖片內(nèi)left = max(0, left)top = max(0, top)right = min(base_width, left + watermark_width)bottom = min(base_height, top + watermark_height)# 調(diào)整水印圖片大小以適應(yīng)新的位置,并使用抗鋸齒濾波器watermark = watermark.resize((right - left, bottom - top), Image.LANCZOS)# 在水印圖片上應(yīng)用透明度# 注意:這里我們假設(shè)水印圖片已經(jīng)有了一個alpha通道,否則需要另外處理# 我們通過創(chuàng)建一個新的RGBA圖片,并用水印圖片和其alpha值來填充它,然后調(diào)整alpha值來改變不透明度watermark_rgba = Image.new('RGBA', watermark.size, (255, 255, 255, int(255 * opacity)))watermark_rgba.alpha_composite(watermark)# 將水印添加到原始圖片上base_image.paste(watermark_rgba, (left, top), watermark_rgba)# 保存圖片base_image.save(output_image_path)# 使用示例
add_watermark('1.png', 'te.png', 'output_with_watermark.png')