以下是用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`函数,并传入保存路径参数。
声明:未经同意禁止任何个人或组织复制、盗用、采集、发布本站点内容到其他媒体平台。