关闭

水印艺术创造:逐步学习Python中的添加水印精华

发表于:2023-9-28 09:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Pillow    来源:Pillow

  欢迎来到本篇文章,我们将一起探讨如何使用Python给图片添加水印。水印是一种在图片上添加文字或图标的技术,常用于版权保护、品牌展示等目的。无论您是初学者还是有一定编程经验的开发者,本文将从入门到精通地引导您,帮助您理解如何使用Python进行图片水印处理。
  准备工作
  在开始之前,我们需要安装Pillow库,它是Python Imaging Library(PIL)的一个分支,用于处理图像。可以使用以下命令使用pip进行安装:
  pip install Pillow
  给图片添加文字水印 首先,我们来学习如何给图片添加文字水印。下面是一个示例,演示了如何使用Pillow库在图片上添加文字水印:
  from PIL import Image, ImageDraw, ImageFont
  # 打开图片
  image = Image.open("image.png")
  # 创建绘制对象
  draw = ImageDraw.Draw(image)
  # 定义水印文字和字体
  watermark_text = "添加水印"
  font = ImageFont.truetype("simhei.ttf", 36)  # 使用支持中文的字体文件
  # 获取文字大小
  text_width, text_height = draw.textsize(watermark_text, font)
  # 计算水印位置
  image_width, image_height = image.size
  x = image_width - text_width - 100
  y = image_height - text_height - 100
  # 添加水印文字
  draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
  # 保存结果
  image.save("image_with_watermark.jpg")
  # 显示添加水印后的图片
  image.show()
  在这个例子中,我们首先打开图片,然后使用ImageDraw.Draw创建绘制对象。定义水印文字和字体后,使用draw.textsize获取文字大小,计算水印的位置,并使用draw.text在图片上添加水印文字。最后,保存结果图片并显示出来。图片
  给图片添加图标水印
  除了文字水印,我们还可以给图片添加图标水印。下面是一个示例,演示了如何使用Pillow库在图片上添加图标水印:
  from PIL import Image
  # 打开图片和图标
  image = Image.open("image.jpg")
  icon = Image.open("icon.png")
  # 调整图标大小
  icon = icon.resize((100, 100))
  # 定义水印位置
  image_width, image_height = image.size
  icon_width, icon_height = icon.size
  x = image_width - icon_width - 10
  y = image_height - icon_height - 10
  # 添加图标水印
  image.paste(icon, (x, y), icon)
  # 保存结果
  image.save("image_with_icon_watermark.jpg")
  # 显示添加图标水印后的图片
  image.show()
  在这个例子中,我们首先打开图片和图标,然后使用resize调整图标的大小。定义图标水印的位置后,使用paste方法将图标粘贴到图片上,并保存结果图片并显示出来。
  给图片批量添加水印
  如果您需要给多张图片批量添加水印,可以使用循环来实现。下面是一个示例,演示了如何使用循环批量给图片添加文字水印:
  from PIL import Image, ImageDraw, ImageFont
  import os
  # 批量处理文件夹中的图片
  input_folder = "input_images"
  output_folder = "output_images"
  watermark_text = "Sample Watermark"
  font = ImageFont.truetype("arial.ttf", 36)
  if not os.path.exists(output_folder):
      os.makedirs(output_folder)
  for filename in os.listdir(input_folder):
      if filename.endswith(".jpg"):
          image = Image.open(os.path.join(input_folder, filename))
          draw = ImageDraw.Draw(image)
          text_width, text_height = draw.textsize(watermark_text, font)
          image_width, image_height = image.size
          x = image_width - text_width - 10
          y = image_height - text_height - 10
          draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
          output_path = os.path.join(output_folder, filename)
          image.save(output_path)
  在这个例子中,我们首先指定输入和输出文件夹,并定义水印文字和字体。然后,使用循环遍历输入文件夹中的图片,依次给每张图片添加水印并保存到输出文件夹中。
  总结
  本文深入介绍了如何使用Python中的Pillow库给图片添加水印,包括文字水印和图标水印。我们学习了如何单独处理一张图片,也学习了如何批量处理多张图片。通过本文,您可以掌握给图片添加水印的基本技巧,为您的图片保护和品牌展示提供了实用的工具。希望本文能帮助您更好地使用Python进行图片水印处理,从入门到精通。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号