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

在Python中使用Image()函数添加文字水印

发布时间:2024-01-06 15:38:37

在Python中使用Image()函数添加文字水印需要使用Python的PIL库(Pillow库)。PIL库是Python的一个图像处理库,它提供了一些简单易用的函数来操作图像。

首先,我们需要安装Pillow库。可以使用pip命令来安装:

pip install pillow

安装完毕后,我们就可以开始使用Image()函数来添加文字水印了。下面是一个完整的示例代码:

from PIL import Image, ImageDraw, ImageFont

def add_text_watermark(image_path, text, output_path):
    # 打开原始图片
    image = Image.open(image_path).convert("RGBA")

    # 创建一个和原始图片大小一样的图片对象,用于绘制水印
    watermark = Image.new("RGBA", image.size, (255, 255, 255, 0))

    # 创建一个字体对象
    font = ImageFont.truetype("arial.ttf", 50)

    # 创建一个绘制对象
    draw = ImageDraw.Draw(watermark)

    # 获取文本的大小
    text_width, text_height = draw.textsize(text, font=font)

    # 计算水印的位置(居中)
    x = (image.width - text_width) // 2
    y = (image.height - text_height) // 2

    # 在水印图片上写入文本
    draw.text((x, y), text, font=font, fill=(255, 255, 255, 128))

    # 将水印图片叠加到原始图片上
    watermarked = Image.alpha_composite(image, watermark)

    # 保存图片
    watermarked.save(output_path)

# 将文字水印添加到图片上
add_text_watermark("original.jpg", "Hello, World!", "output.jpg")

在上面的例子中,首先我们使用Image.open()函数打开原始图片,并通过convert("RGBA")将其转换为RGBA格式,以支持透明度。

然后,我们创建了一个和原始图片大小一样的图片对象(命名为“watermark”),并使用Image.new()函数指定了图片的大小和背景色(R、G、B、A分别表示红、绿、蓝、透明度)。

接下来,我们使用ImageFont.truetype()函数创建了一个字体对象,以指定要使用的字体和大小。

然后,我们创建了一个绘制对象,使用ImageDraw.Draw(watermark)函数创建,并使用textsize()函数计算了文本的大小。

接下来,我们计算出水印的位置,以将水印绘制在图片的中心位置。

最后,我们使用draw.text()函数在水印图片上绘制文本,并指定了文本的位置、字体和颜色。

最后,我们使用Image.alpha_composite()函数将水印图片叠加到原始图片上,并使用save()函数保存图片。

需要注意的是,上面的例子中使用了一个名为“arial.ttf”的字体文件作为默认字体,这是Windows系统中常用的字体文件。如果在你的系统上没有该字体文件,可以将字体文件路径替换为你系统上已有的字体文件。

除了添加文本水印,你还可以使用PIL库的其他函数来添加图片水印、调整水印大小、调整水印透明度等。这里只是给出了一个简单的示例,你可以根据自己的需求来扩展和修改。