使用ImageFile()库在Python中添加水印到图片
发布时间:2023-12-24 11:25:43
ImageFile()是Python的一个模块,它提供了对图像文件的读取、编辑和保存的功能。要在图片上添加水印,可以使用该库中的一些方法和属性。
首先,你需要安装PIL库。可以使用以下命令在Python环境中安装它:
pip install pillow
安装完成后,可以开始使用ImageFile()库来添加水印到图片上。以下是一个简单的例子,演示了如何使用ImageFile()库来添加水印:
from PIL import Image, ImageDraw, ImageFont
def add_watermark(image_path, watermark_text, output_path):
# 打开图片
image = Image.open(image_path)
# 获取图片的宽高
image_width, image_height = image.size
# 创建一个新的图片,大小与原图相同
watermark = Image.new('RGBA', (image_width, image_height))
# 设置水印文字的样式
font = ImageFont.truetype('arial.ttf', 30)
# 在新图片上绘制水印
draw = ImageDraw.Draw(watermark)
text_width, text_height = draw.textsize(watermark_text, font)
x = (image_width - text_width) // 2
y = (image_height - text_height) // 2
draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
# 将水印图片合并到原图上
watermarked_image = Image.alpha_composite(image.convert('RGBA'), watermark)
# 保存水印图片
watermarked_image.save(output_path)
# 关闭图片
image.close()
watermark.close()
watermarked_image.close()
# 指定要添加水印的图片路径
image_path = 'example.jpg'
# 指定要添加的水印文字
watermark_text = 'Watermark'
# 指定输出的图片路径
output_path = 'output.jpg'
# 调用函数添加水印
add_watermark(image_path, watermark_text, output_path)
上述例子中,首先我们使用Image.open()打开了原始图片。然后,我们创建了一个与原图大小相同、透明的水印图片,使用Image.new()方法和RGBA模式。我们还设置了水印文字的样式,包括字体和大小。
接下来,我们使用ImageDraw.Draw()方法在水印图片上绘制水印文字。使用draw.textsize()方法获取文本的大小,然后计算出水印文字的位置。最后,使用draw.text()方法绘制水印文字。
完成水印图片的绘制后,我们使用Image.alpha_composite()方法将水印图片与原图合并。最后,我们使用save()方法保存添加了水印的图片,并关闭所有打开的图片。
以上是一个简单的例子,演示了如何使用ImageFile()库在Python中添加水印到图片上。你可以根据自己的需求调整水印的样式和位置,并应用于你想要的图片上。
