解析网站怎么做,怎么在百度上打广告,品牌网站建设知名大蝌蚪,做网站的项目开发计划书python给图片加上图片水印 作用效果代码 作用
给图片加上图片水印图片水印的透明度#xff0c;位置可自定义
效果
原始图片#xff1a;
水印图片#xff1a;
添加水印后的图片#xff1a;
代码
from PIL import Image, ImageDraw, ImageFontdef add_watermark(in… python给图片加上图片水印 作用效果代码 作用
给图片加上图片水印图片水印的透明度位置可自定义
效果
原始图片
水印图片
添加水印后的图片
代码
from PIL import Image, ImageDraw, ImageFontdef add_watermark(input_image_path, watermark_image_path, output_image_path, position(0.5, 0.5), opacity0.5):在图片上添加水印:param input_image_path: 输入图片路径:param watermark_image_path: 水印图片路径:param output_image_path: 输出图片路径:param position: 水印位置默认为图片中心 (x, y) 坐标值在0到1之间:param opacity: 水印的不透明度1为完全不透明0为完全透明:return: Nonebase_image Image.open(input_image_path).convert(RGBA)watermark Image.open(watermark_image_path).convert(RGBA)# 获取图片尺寸base_width, base_height base_image.sizewatermark_width, watermark_height watermark.size# 计算水印位置left int(base_width * position[0] - watermark_width / 2)top int(base_height * position[1] - watermark_height / 2)# 限制水印位置在图片内left max(0, left)top max(0, top)right min(base_width, left watermark_width)bottom min(base_height, top watermark_height)# 调整水印图片大小以适应新的位置并使用抗锯齿滤波器watermark watermark.resize((right - left, bottom - top), Image.LANCZOS)# 在水印图片上应用透明度# 注意这里我们假设水印图片已经有了一个alpha通道否则需要另外处理# 我们通过创建一个新的RGBA图片并用水印图片和其alpha值来填充它然后调整alpha值来改变不透明度watermark_rgba Image.new(RGBA, watermark.size, (255, 255, 255, int(255 * opacity)))watermark_rgba.alpha_composite(watermark)# 将水印添加到原始图片上base_image.paste(watermark_rgba, (left, top), watermark_rgba)# 保存图片base_image.save(output_image_path)# 使用示例
add_watermark(1.png, te.png, output_with_watermark.png)