水印艺术创造:逐步学习Python中的添加水印精华
创始人
2025-07-02 17:01:47
0

欢迎来到本篇文章,我们将一起探讨如何使用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进行图片水印处理,从入门到精通。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...