使用Python的imsave()函数将图像添加水印并保存
发布时间:2023-12-11 00:40:40
在使用Python处理图像时,可以使用imsave()函数将图像保存到指定路径。下面是一个使用imsave()函数添加水印并保存图像的例子。
首先,我们需要导入需要使用的库。numpy库用来处理图像矩阵,PIL库用来打开和保存图像文件,cv2库用于图像处理。
import numpy as np from PIL import Image import cv2
接下来,我们可以定义一个函数来添加水印。这里,我们假设水印是一个文本字符串,我们可以选择字体、颜色和透明度等参数来自定义水印的外观。
def add_watermark(image_path, watermark_text, font_path, font_size, color, opacity):
# 打开图像文件
image = Image.open(image_path).convert("RGBA")
# 创建一个空的水印图像
watermark = Image.new("RGBA", image.size)
# 创建一个字体对象
font = ImageFont.truetype(font_path, font_size)
# 创建一个画笔对象
draw = ImageDraw.Draw(watermark)
# 计算水印的位置
text_width, text_height = draw.textsize(watermark_text, font=font)
x = (image.width - text_width) // 2
y = (image.height - text_height) // 2
# 在水印图像上绘制文本
draw.text((x, y), watermark_text, font=font, fill=color+(int(opacity*255),))
# 合并水印和原始图像
watermarked_image = Image.alpha_composite(image, watermark)
return watermarked_image
在add_watermark()函数中,我们首先打开图像文件并将其转换为RGBA模式以支持透明度。然后,我们创建一个空的水印图像,使用ImageFont.truetype()函数创建一个字体对象,并使用ImageDraw.Draw()函数创建一个画笔对象。接下来,我们计算水印的位置,并使用draw.text()函数在水印图像上绘制文本。最后,我们使用Image.alpha_composite()函数将水印图像和原始图像合并。
现在,我们可以使用add_watermark()函数来添加水印并保存图像。
image_path = "input_image.png"
watermark_text = "Watermark"
font_path = "font.ttf"
font_size = 50
color = (255, 0, 0) # 红色
opacity = 0.5
# 添加水印并保存图像
watermarked_image = add_watermark(image_path, watermark_text, font_path, font_size, color, opacity)
watermarked_image.save("output_image.png")
在上面的代码中,我们指定了输入图像的路径image_path,水印文本watermark_text,字体文件路径font_path,字体大小font_size,颜色color和透明度opacity。然后,我们调用add_watermark()函数添加水印并得到带水印的图像。最后,我们使用save()函数将带水印的图像保存为输出图像。
以上就是使用Python的imsave()函数添加水印并保存图像的示例。你可以根据自己的需求调整参数和样式来定制你的水印。
