python怎么使用Pillow库来添加图片水印

简介: python怎么使用Pillow库来添加图片水印

当使用Pillow库来添加图片水印时,下面是一个示例代码:

 

请确保在运行示例代码之前,已经安装了Pillow库(可以使用`pip install pillow`命令进行安装)。示例代码中,打开原始图片、创建透明的水印图层、绘制水印文本、合成水印图层和原图,最后将添加了水印的图像保存为输出图片。

在示例代码中,使用了Arial字体,您可以根据需要替换字体文件路径、字体大小以及水印文本的位置和颜色等参数,以适应您的实际需求。下面具体说明下其步骤:

1. 导入必要的库:

 

from PIL import Image, ImageDraw, ImageFont

 

2. 定义添加水印的函数 `add_watermark`:

def add_watermark(image_path, watermark_text, output_path):
       # 打开原始图片
       image = Image.open(image_path)
       # 创建一个与原始图片相同大小的透明图层
       watermark = Image.new('RGBA', image.size, (0, 0, 0, 0))

 

3. 设置水印文本的字体和大小:

 

# 设置水印文本的字体和大小
       font = ImageFont.truetype('arial.ttf', 50)

4. 在水印图层上绘制水印文本:

# 在水印图层上绘制水印文本
       draw = ImageDraw.Draw(watermark)
       text_width, text_height = draw.textsize(watermark_text, font)
       x = (image.width - text_width) // 2
       y = (image.height - text_height) // 2
       draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))

5. 将水印图层与原始图片进行合成:

 

# 将水印图层与原始图片进行合成
       watermarked = Image.alpha_composite(image.convert('RGBA'), watermark)

6. 保存水印图片到指定路径:

 

# 保存水印图片
       watermarked.save(output_path)

7. 使用 `add_watermark` 函数添加水印:

 

# 示例用法
   image_path = 'input.jpg'  # 原始图片路径
   output_path = 'output.jpg'  # 输出图片路径
   watermark_text = 'Watermark'  # 水印文本
   add_watermark(image_path, watermark_text, output_path)

确保将 `image_path` 替换为您实际的原始图片路径,`output_path` 替换为您希望保存水印图片的路径,`watermark_text` 替换为您想要显示的水印文本。根据需要,您可以调整字体、字体大小、文本位置和颜色等参数以满足特定要求。

目录
相关文章
|
24天前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
227 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
17天前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
70 0
|
16天前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
101 3
|
18天前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
234 0
|
2月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
122 18
|
2月前
|
机器学习/深度学习 API 异构计算
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
JAX是Google开发的高性能数值计算库,旨在解决NumPy在现代计算需求下的局限性。它不仅兼容NumPy的API,还引入了自动微分、GPU/TPU加速和即时编译(JIT)等关键功能,显著提升了计算效率。JAX适用于机器学习、科学模拟等需要大规模计算和梯度优化的场景,为Python在高性能计算领域开辟了新路径。
184 0
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
|
2月前
|
存储 监控 安全
Python剪贴板监控实战:clipboard-monitor库的深度解析与扩展应用
本文介绍了基于Python的剪贴板监控技术,结合clipboard-monitor库实现高效、安全的数据追踪。内容涵盖技术选型、核心功能开发、性能优化及实战应用,适用于安全审计、自动化办公等场景,助力提升数据管理效率与安全性。
110 0
|
18天前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
188 102
|
18天前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
192 104

热门文章

最新文章

推荐镜像

更多