以下是用Python编写的一个给图片添加图片水印的程序,并附带注释说明代码的作用:

from PIL import Image

# 打开主图片和水印图片
main_image = Image.open("main_image.jpg")
watermark_image = Image.open("watermark_image.png")

# 获取主图片的尺寸
main_width, main_height = main_image.size

# 计算水印图片的缩放比例,使其宽度适应主图片的1/4,并保持宽高比例不变
watermark_scale = main_width / 4 / watermark_image.width
watermark_width = int(watermark_image.width * watermark_scale)
watermark_height = int(watermark_image.height * watermark_scale)
watermark_image = watermark_image.resize((watermark_width, watermark_height))

# 计算水印图片的位置,位于主图片的右上角
watermark_x = main_width - watermark_width - 10  # x坐标为主图片宽度减去水印图片宽度再减去10像素的间隔
watermark_y = 10  # y坐标为10像素的间隔

# 将水印图片添加到主图片上
main_image.paste(watermark_image, (watermark_x, watermark_y), watermark_image)

# 保存修改后的图片
main_image.save("result_image.jpg", quality=95)

代码的功能是给一张主图片添加一张水印图片,位置位于主图片的右下角,最后保存修改后的图片。下面是每个步骤的具体注释说明:

1. 导入 Image 模块,用于处理图片。
2. 打开主图片和水印图片,需要将主图片和水印图片放在程序同一目录下,并确保文件名正确。
3. 获取主图片的宽度和高度,以便后续计算水印图片的位置。
4. 缩放水印图片,使其宽度适应主图片的1/4,并保持宽高比例不变。这里通过计算新的宽度,然后根据宽高比例计算新的高度。
5. 计算水印图片的位置,位于主图片的右下角。这里通过计算x坐标和y坐标实现,x坐标为主图片宽度减去水印图片宽度再减去10像素的间隔,y坐标为主图片高度减去水印图片高度再减去10像素的间隔。
6. 将水印图片粘贴到主图片上,使用`paste`函数,并传入水印图片、位置参数以及水印图片作为mask参数。这样可以实现水印图片的透明效果。
7. 保存修改后的图片,使用`save`函数,并传入保存路径参数。

 

声明:未经同意禁止任何个人或组织复制、盗用、采集、发布本站点内容到其他媒体平台。