在Python中,可以使用以下几种方法给图片添加水印:
- 使用PIL库(Python Imaging Library):PIL库是Python中常用的图像处理库,可以使用它来添加水印。首先,需要使用PIL库打开原始图片,然后创建一个新的图片对象,将原始图片复制到新图片对象上,并使用PIL库的文本绘制功能在新图片上添加水印。最后,将新图片保存到磁盘上。
from PIL import Image, ImageDraw, ImageFont # 打开原始图片 image = Image.open('original_image.jpg') # 创建一个新的图片对象,并将原始图片复制到新图片对象上 new_image = Image.new('RGBA', image.size, (0, 0, 0, 0)) new_image.paste(image, (0, 0)) # 在新图片上添加水印 draw = ImageDraw.Draw(new_image) text = 'Watermark' font = ImageFont.truetype('arial.ttf', 36) draw.text((10, 10), text, font=font, fill=(255, 255, 255, 128)) # 保存新图片 new_image.save('watermarked_image.jpg')
- 使用OpenCV库:OpenCV是一个用于图像处理和计算机视觉任务的开源库,也可以使用它来添加水印。首先,使用OpenCV库的
cv2.putText()
函数在原始图片上添加水印文本。最后,将带有水印的图片保存到磁盘上。
import cv2 # 读取原始图片 image = cv2.imread('original_image.jpg') # 在原始图片上添加水印 text = 'Watermark' position = (10, 50) font = cv2.FONT_HERSHEY_SIMPLEX fontScale = 1 color = (255, 255, 255) thickness = 2 cv2.putText(image, text, position, font, fontScale, color, thickness) # 保存带有水印的图片 cv2.imwrite('watermarked_image.jpg', image)
- 使用Pygame库:Pygame是Python中的一个游戏开发库,也可以用于添加水印。首先,使用Pygame库加载原始图片。然后,使用Pygame库的绘制文本功能在原始图片上添加水印。最后,将带有水印的图片保存到磁盘上。
import pygame # 初始化Pygame pygame.init() # 加载原始图片 image = pygame.image.load('original_image.jpg') # 创建一个新的图片对象,并将原始图片复制到新图片对象上 new_image = pygame.Surface(image.get_size()) new_image.blit(image, (0, 0)) # 在新图片上添加水印 font = pygame.font.SysFont('arial', 36) text_surface = font.render('Watermark', True, (255, 255, 255)) new_image.blit(text_surface, (10, 10)) # 保存带有水印的图片 pygame.image.save(new_image, 'watermarked_image.jpg')
以上是Python中几种常用的添加水印的方法,每种方法都有其优缺点,根据实际需求选择合适的方法。