在Python中使用Image()函数添加文字水印
在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库的其他函数来添加图片水印、调整水印大小、调整水印透明度等。这里只是给出了一个简单的示例,你可以根据自己的需求来扩展和修改。
