欢迎访问宙启技术站
智能推送

使用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中添加水印到图片上。你可以根据自己的需求调整水印的样式和位置,并应用于你想要的图片上。