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

news2024/11/15 21:24:21

当使用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` 替换为您想要显示的水印文本。根据需要,您可以调整字体、字体大小、文本位置和颜色等参数以满足特定要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/713262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计模式篇(Java):桥接模式

上一篇:计模式篇(Java):适配器模式 九、桥接模式 需求示例 当我们对不同手机类型的不同品牌实现操作编程,如图: 那么它对应的类图就是 传统方式解决需求分析: 扩展性问题,如果需要在增加手机的样式&#x…

什么是业务逻辑攻击 (BLA),大家为什么一定要要关注它?

想象一下:您的开发团队刚推出了一款令人惊叹的全新应用程序,它具有顶级的API安全性,通过客户端保护对其进行了强化,甚至还设置了针对机器人攻击的防御措施。你感到这款产品很有安全保障,自己的团队出色地完成了工作。 …

SAP从入门到放弃系列之生产执行-领用与消耗概述

文章目录导航 一、生产物资领用1.1、概述1.2、项目中自开发领料功能方式一:创建预留的方式方式二:创建UB订单方式 二、生产投料 一、生产物资领用 1.1、概述 生产的备料方式因为企业的行业特点以及企业对材料库存管理的流程设置,企业使用的…

MATLAB | 高斯变量概率密度函数的理论与实际对比

一、仿真实验目的 生成一组高斯变量,并基于生成的数据统计其概率密度函数,与理论高斯概率密度函数进行对比,观察生成的高斯变量的概率分布。 二、解决思路 (1)利用randn函数生成高斯随机变量 (2&#xf…

利用Visual Studio 2022 导出目标dll API接口

利用Visual Studio 2022 导出目标dll API接口 操作路径: 指令如下: dumpbin /exports /out:C:\\Users\\Administrator\\Desktop\\PlantSimCore.txt C:\\Users\\Administrator\\Desktop\\PlantSimCore.dll dumpbin /exports /out:C:\\Users\\Administrator\\Desktop\\

Ubuntu18.04安装Qt5.14.2

一、安装 第一步: 官网Index of /archive/qt 下载安装包, 或者国内网址下载 https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.9/5.9.0/ 我安装的是QT5.14.2 中的 qt-opensource-linux-x64-5.14.2.run ; 第二步:ctrlT 打开终端输入命…

Python的Logging模块

1.日志的相关概念🍃 日志是指记录系统或应用程序运行状态、事件和错误信息的文件或数据。在计算机系统中,日志通常用于故障排除、性能分析、安全审计等方面。日志可以记录各种信息,如系统启动和关闭时间、应用程序的运行状态、用户登录和操作…

数字化就是做系统?广州数字化转型服务公司推荐

数字化转型是一个与数字化技术密切相关的概念,很多不了解数字化转型的企业往往会认为数字化转型就是提升企业的数字化技术应用水平和不断增加数字化系统的功能,也就是将数字化转型认为是做系统。但实际上,开利网络认为,数字化转型…

使用vtk在一个窗口中创建多个几何体

引言 该示例为官网上的例子。在一个窗口中创建了多个不同的几何体。 其效果如下: 示例 开发环境 使用QtCreator4.11.2,Qt5.14.2。使用的vtk9.2的库及其头文件。创建空项目。 示例代码 其pro文件中的内容: QT core#greaterThan(QT_MAJOR_V…

【产品文档】埋点需求文档模板

今天和大家免费分享埋点需求文档模板。埋点文档的目的是帮助开发人员准确地实施埋点,并确保收集到的数据符合预期,以便后续分析和改进产品。 【模板下载】 这个模板可以在 Axure高保真原型哦 小程序里免费下载哦 【文档截图】

微搭低代码实现横向滚动效果

目录 1 添加滚动容器2 滚动内容设置总结 在小程序场景中,有很多横向滚动的效果,比如我们的官方模板电商展示里就有一个横向滚动的效果,本篇我们解读一下横向滚动该如何实现 1 添加滚动容器 不管是横向滚动还是纵向滚动,我们都是依…

【Python】NLP参数控制模板

前言 学过AI的都知道训练一个模型需要调整很多参数,为了有效的管理这些参数、不至于让代码的参数写的乱七八糟,有必要写一套控制参数的模板。 argparser argparser是python当中的参数解析器,在NLP当中主要是用来接受和使用参数的。一个使用它…

Word技巧【自用】

表格断开 做到类似这样的效果,很简单,用边框刷就可以 设定边框的横线,以及磅值,就可以像画三线表一样断开了

vue el-dialog嵌入video实现视频播放功能

video嵌入dialog实现视频播放 业务需求1、实现的效果图3、全部代码(复制粘贴即可实现) 业务需求 弹窗实现视频播放&#xff0c;并且切换不同选项卡播放不同视频 1、实现的效果图 3、全部代码(复制粘贴即可实现) <template><el-button style"margin-left: 60px&q…

警惕: 新的 “RustBucket “恶意软件变种针对macOS用户

研究人员已经揭开了苹果macOS恶意软件RustBucket更新版本的序幕&#xff0c;该版本具有改进的能力&#xff0c;可以建立持久性并避免被安全软件发现。 安全实验室的研究人员在本周发表的一份报告中表示&#xff1a;RustBucket的变种是一个针对macOS系统的恶意软件集合&#xf…

Cisco ISR 1000 Series IOS XE Release Dublin-17.11.1a ED

Cisco ISR 1000 Series IOS XE Release Dublin-17.11.1a ED 思科 1000 系列集成多业务路由器 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-isr-1000/&#xff0c;查看最新版。原创<品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 思科 1000…

关于NISP,收藏这个就够了!

01 全面认知NISP 什么是NISP证书&#xff1f; 为提高各领域人才信息安全意识&#xff0c;落实国家信息安全人才培养战略&#xff0c;缓解我国信息安全领域专业人才存在的供需矛盾&#xff0c;加快我国信息安全专业人才队伍的建设&#xff0c;逐步形成一支政治可靠、技能过硬…

VUE小白学习-2023年6月7日

VUE小白学习-2023年6月7日 前端工程化 日期&#xff1a;2023年6月7日 前端工程化

SVN服务器简单配置过程

一、概述 SVN的全称是Subversion&#xff0c;是一个流行的开源的版本控制系统。Subversion可管理随时间改变的数据&#xff0c; 这些数据放置在一个中央资料档案库(repository) 中。 它就像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样当需要回退时&#xff0c;…