手把手教你用Python批量给图片添加水印 | 知了干货分享

python给批量图片添加文字_Python之利用PIL批量给图片添加文字 因为略懂Photoshop,所以接到一个任务:将公司所有的产品图片整理出来,并在图片中写明产品的品牌和型号,然后分类放在iPad中方便给客户展示。WTF,几千张图片,用PS一个个打开添加文字,这会把人弄疯的,作为一个懒人,做这种大量机械性的重复工作显然不是我的追求,于是就想到用程序自动实现。一、使用Python和PIL图片处理库思路:所有图片的文件名都是以品牌+型号的方式命名,所以先用python... 阅读详情

我们在网上浏览一些文章的时候,经常会发现文章中会有一些图片,上面会有一些标识,而这些标识就是我们经常说的水印了。很多时候,我们需要给图片加上一些修饰,好让别人能直观的认识到这个图片的出处以及来源,同时还能有效防止别人盗图。

实现对图片的批量添加水印,可以告别繁琐的工作,增加工作效率。而对于添加水印和重命名,我们用到的模块有pillow,os,开发工具 sublime text 3。

一、单张图片添加水印文字

下载并导入所需模块

pip install pillow  #下载pillow模块
from PIL import Image #导入,下同
from PIL import ImageDraw
from PIL import ImageFont

打开图片文件

im=Image.open('12.jpg')

构建画图对象

draw=ImageDraw.Draw(im)

导入字体文件

ImageFont.truetype(r'C:\Windows\Fonts\simsun.ttc',size=40)#导入字体文件

修改水印颜色

draw.ink = 0 + 0 * 256 + 255 * 256 * 256 # 颜色

添加水印

draw.text([200,200],text,'red',font=Font) # 文字加载到图片上

保存文件

im.save('12.png','png') #保存图片

完整代码如下:

from PIL import Image
from PIL import ImageDraw  
from PIL import ImageFont
im=Image.open('12.jpg')
draw=ImageDraw.Draw(im) 
text = '我爱你'
Font=ImageFont.truetype(r'C:\Windows\Fonts\simsun.ttc',size=40)#导入字体文件
draw.ink = 0 + 0 * 256 + 255 * 256 * 256 # 颜色
draw.text([200,200],text,'red',font=Font) # 文字加载到图片上
im.save('12.png','png') #保存图片
im.show() #显示图片

完成之后的效果是这样的:
在这里插入图片描述
可以看出我爱你三个打字就被刻在了上面。

二、单张图片添加水印图片

这样就完成了图片的首次文字水印,当然你也可以弄一个图片水印,只需加一层图层即可,比如我要将刘亦菲加在这个满是英文的图片上,就可以这样做:

导入相关模块

from PIL import Image

导入原图片和水印图片并得出原图片大小

im = Image.open('12.jpg')  # 打开图片
im1= Image.open('11.jpg')  # 打开水印图片
w,h= im.size

重新设置水印图片大小,保证图片不会与原图重叠并溢出

mm=im1.resize((80,40),Image.ANTIALIAS) #重新设置水印图片大小

设置水印图片位置

position = (w-100,h-100) # 默认设定水印位置为右下角

新建图层

layer = Image.new('RGB', im.size)  # 新建一个图层

将水印图片添加到图层上

layer.paste(mm, position)  # 将水印图片添加到图层上

合并水印和原图片为一张图

im2= Image.composite(layer, im, layer)#合并图片

保存图片

im2.save('21.jpg') #保存图片

完整代码如下:

from PIL import Image
im = Image.open('12.jpg')  # 打开图片
im1= Image.open('11.jpg')  # 打开水印图片
w,h= im.size
mm=im1.resize((80,40),Image.ANTIALIAS) #重新设置水印图片大小
position = (w-100,h-100) # 默认设定水印位置为右下角
layer = Image.new('RGBA', im.size)  # 新建一个图层
layer.paste(mm, position)  # 将水印图片添加到图层上
im2= Image.composite(layer, im, layer)#合并图片
im2.save('21.jpg') #保存图片

这样即可完成水印图片的填充。效果图如下:
在这里插入图片描述
三、批量给图片添加水印文字

但是我们要做的是批量给图片添加水印效果啊,所以现在我们需要用到某些系统模块,比如os。

既然是批量,那我们肯定得先获取到某个目录所有图片文件了,我们可以这样做:

1.遍历指定目录所有图片文件

def search(path):
    for x in os.listdir(path): #遍历目录下的所有文件和文件夹
        if os.path.isfile(x) and x.endswith('.jpg'): #判断文件x是否文件且它的后缀是否是.jpg
            yield x  #生成器
for y in search(r'C:\Users\Administrator\Desktop'):
    ger(y) #桌面上所有的JPG文件

获取到了之后了我们就可以逐个读取到图片信息啦。

2.添加水印

接下来我们就可以写代码了,首先还是先写添加文字水印,如何批量添加了,那肯定是把这些逐个读取到的图片一个个打上文字水印啦,不过记得加一个睡眠时间,因为图片一下子全部读取保存会很耗费内存的,那么下面就跟小编一起来打水印吧。

还是原来的套路,这里我就不细说了,免得大家说我像老太婆的裹脚布一样,直奔主题,上代码:

from time import sleep
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
a=0 #初始化图片编号
def search(path):
    for x in os.listdir(path): #遍历目录下的所有文件和文件夹
        if os.path.isfile(x) and x.endswith('.jpg'): #判断文件x是否文件且它的后缀是否是.jpg
            yield x   #生成器
def ger(x):
    font = ImageFont.truetype(r'C:\Windows\Fonts\simsun.ttc',size=40) #添加字体文件和字体大小
    im=Image.open(x)
    draw = ImageDraw.Draw(im)  #构建画图对象
    draw.text((im.size[0]-330,im.size[1]-85), '我爱你', fill='blue',font=font)#添加水印
    dir = r'C:\Users\Administrator\Desktop\tp' #保存位置
    filename = os.path.join(dir,str(a)+'.jpg') #保存文件名
    sleep(1)  #睡眠时间
    im.save(filename) #保存文件

for y in search(r'C:\Users\Administrator\Desktop'):
    a=a+1  #每次开始保存文件,a就加一
    ger(y) #添加水印并保存图片

最后结果就如下图所示:
在这里插入图片描述
四、批量给图片添加水印图片

可以看出已经对桌面上所有的JPG文件添加了水印,水印文字为‘我爱你’,批量添加水印图片也是差不多的套路,只需把添加单个水印图片代码稍加改动即可,下面请看:

from time import sleep
from PIL import Image
import datetime
from PIL import ImageDraw
from PIL import ImageFont
a=0
def search(path):
    for x in os.listdir(path):
        if os.path.isfile(x) and x.endswith('.jpg'):
            yield x
def ger(x):
    im=Image.open(x)
    w,h= im.size
    im1= Image.open(r'C:\Users\Administrator\Desktop\11.jpg')  #打开水印图片
    mm=im1.resize((80,40),Image.ANTIALIAS) #重新设置水印图片大小
    position = (w-100,h-100) # 默认设定水印位置为右下角
    layer = Image.new('RGBA', im.size)  # 新建一个图层
    layer.paste(mm, position)  # 将水印图片添加到图层上
    im2= Image.composite(layer, im, layer)#合并图片
    dir = r'C:\Users\Administrator\Desktop\tp'
    filename = os.path.join(dir,str(a)+'.png') #要保存的文件名
    sleep(1)  #睡眠时间
    im2.save(filename) #保存文件
for y in search(r'C:\Users\Administrator\Desktop'):
    a=a+1
    ger(y)

完成后效果如图:
在这里插入图片描述
可以看出,我们桌面上的每一张图片基本上就已经能够打上水印了,是不是很简单了。

五、批量文件名重命名

在这里,小编还要给大家另外传授一个绝招,那就是批量文件改名了,也是相当的简单的说:

#批量重命名图片文件
from PIL import Image
import glob
import os
import random
aa=input('路径:') #输入要改名的文件的目录
os.chdir(r'%s'%aa)  #更改访问路径
os.getcwd() #切换到当前目录
ab=glob.glob('*.jpg')  #搜索所有的jpg文件
qq=input('caoxun:') #输入存储新文件的目录
for x in range(len(ab)):
    os.rename(ab[x],os.path.join(qq,str(x)+'.bmp')) #重命名

运行后效果如图:
在这里插入图片描述
如果你想平时用于修改文件名和加水印这些繁琐操作的话,也可以将小编写的这些功能封装到一个类模型里,然后做一个界面出来以方便别人使用,在这里由于时间关系小编就不写了。

总的来说该项目并没有多大的难点,唯一要注意的就是只有png图片在RGBA模式下设置alpha值才可以进行透明度设置,所以我并没有用这个鸡肋的功能,最后祝大家能学以致用,学有所成。

更多干货内容,欢迎关注公众号:知了python

Python实用案例,Python脚本,Python实现批量加水印 往期回顾 Python实现自动监测Github项目并打开网页 Python实现文件自动归类 Python实现帮你选择双色球号码 Python实现每日更换“必应图片”为“桌面壁纸” 前言: 今天我们就利用python脚本实现批量加水印。直接开整~ 效果展示 有时候,为了保护版权,需要给作品中的图片加上水印。 一种是把水印(logo)加在图片的一个角落,就像有的是公众号会在后台把水印打开。 更厉害的一种是,水印在整个图上有很多,有个轻微的透明度,更安全。 PYTHON自动化 今天就来带大家,用Python给图 阅读详情

相关推荐

【一篇解决】Python图片处理: 去水印/加水印—这几个方法你一定要学会,太神奇了~(建议保留)

🌄导语 哈喽盆友们泥萌好,这个夏天我们一起去看海啊~ 嘻嘻嘻。广州的天气简直说变就变啊🌧🌦🌥最近一直在疯狂下雨。 好不容易来一趟广州,啥地方都没去呢!昨天还有小伙伴儿催我(顺便说一句日月贝的景色不错 啊)有一个写游戏文章的朋友让我帮忙去下图片的水印,说素材不好找,找到了还有水印,难搞哦 让我帮忙想个办法,哈哈哈——暗搓搓的准备好~​ 小可爱们有想去水印🚥的,也有想添加水印🚦的,今天统统安排一波啦~ 今天就给大家推荐一款自己写的程序员添加水印+祛除水印的方法!期待.jpg 🌅正..

顾木子吖的博客 4492

批量添加_批量添加图片水印和重命名,真方便!

告诉大家一个小技巧,打开右上角选择置顶我们的公众号,每天可获取最新福利资源哦目前我们的公众号已经至少为上万人提供了帮助,新来的小伙伴,如果你不想错过每一期福利的话,需要获取往期分享的福利,可以在菜单栏找到“软件目录”或“往期精彩”即可获取到全部资源哦,因为我们分享的软件都是特别版(你懂得~)所以遇到有些需要更新的,能使用的时候就尽量不要更新哦哈喽,大家好我是好公子今天给大家分享一款批...

weixin_39946798的博客 486

python批量在图片指定位置添加文字

批量在图片指定位置添加文字python # 导入PIL模块 from PIL import Image, ImageDraw, ImageFont, ImageFilter zt = r"C:/Windows/Fonts/simhei.ttf" # 指定字体 def tianzi(pic, site, txt, path): # 打开初始文件 image = Image.open(pic) # print('原图长宽:', image.size) font = ImageFont.truetype(zt, 50) # 创建Draw对象: d

python在图片中添加文字

第二部:图片中插入文字(可以插入中文)

qq_45601685的博客 1135

深入理解HTTPS:从SSLHandshakeException到证书链验证的完整解析

本文深入解析了HTTPS握手过程中常见的SSLHandshakeException异常,特别是由证书链验证失败引发的CertPathValidatorException。文章从TLS握手流程、证书链验证的数学原理出发,详细剖析了Java中TrustManager的工作机制,并提供了针对证书链不完整、自签名证书等典型问题的系统化排查流程与实战解决方案。

weixin_29313423的博客 232

Windows安装WSL子系统及docker,以及WSL和docker配置、使用及问题解决

在Windows操作系统中,Ubuntu子系统(也称为Windows Subsystem for Linux, WSL)为开发者提供了一个在Windows环境下运行Linux环境的平台。然而,有时用户在按照Ubuntu子系统或者使用WSL时,可能会遇到各种问题,下面总结一下解决方式。想要在Windows上安装Docker(实际上是基于Hyper-V或者WSL2这两项虚拟化技术),需要开启虚拟化功能,所以不管是对于系统还是硬件都有一定的要求。

sym的博客 9789

用Python编写的批量处理图片并添加信息的程序

在工作中经常会遇到批量处理商品图片并组合商品相关信息的事情,现在我用Python编写的批量处理表格中的图片并添加货号、售价、货值信息的程序。此程序会遍历Excel表格中的每一行数据,读取图片文件名、货号、售价和货值信息,并在每个图片的左上角添加这些信息,然后保存修改后的文件。替换成你的Excel文件路径,其中该文件应包含列名为 "图片文件名"、"货号"、"售价" 和 "货值" 的列。替换为包含所有要处理的图片文件的目录路径,并且将。替换为希望输出文件的目录路径。

weixin_44435602的博客 562

数学建模小白必看:层次分析法(AHP)从入门到实战(附Python代码)

本文详细介绍了层次分析法(AHP)在数学建模竞赛中的应用,从构建判断矩阵到一致性检验,再到权重计算和实战案例。通过Python代码实现,帮助小白快速掌握AHP的核心技巧,解决评价类难题,提升建模效率。

web39explorer的博客 921

python批量添加水印_手把手教你用Python批量给图片添加水印!知了干货分享!

我们在网上浏览一些文章的时候,经常会发现文章中会有一些图片,上面会有一些标识,而这些标识就是我们经常说的水印了。很多时候,我们需要给图片加上一些修饰,好让别人能直观的认识到这个图片的出处以及来源,同时还能有效防止别人盗图。实现对图片的批量添加水印,可以告别繁琐的工作,增加工作效率。而对于添加水印和重命名,我们用到的模块有pillow,os,开发工具 sublime text 3。一、单张图片添加水...

weixin_39662721的博客 364

给粒子物理萌新的Geant4保姆级入门:从看懂B1示例代码到跑通第一个模拟

本文为粒子物理初学者提供Geant4的保姆级入门指南,从解析B1示例代码到跑通第一个模拟。详细介绍了环境准备、代码解析、可视化系统实战及扩展模拟的方法,帮助新手快速掌握Geant4的基本概念和工具包使用。

weixin_29231725的博客 500

电商数据采集实战——多平台价格监控、比价分析与智能告警系统

在电商竞争日益激烈的今天,价格监控与比价分析已成为品牌商、渠道商和消费者的核心需求。对于品牌商而言,需要监控各渠道售价是否低于指导价(破价监控);对于消费者而言,希望在最佳时机以最低价购入心仪商品;对于数据分析师而言,价格波动数据是洞察市场趋势的金矿。然而,电商数据采集面临三大核心挑战:本文将基于 Python + Scrapy + Playwright + Redis + ClickHouse 技术栈,构建一套完整的电商价格监控与比价系统。架构分层说明:电商平台的反爬手段层出不穷,采集系统必须具备多层次的

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 136

批量改名_手把手教你用Python批量给图片添加水印 | 知了干货分享

我们在网上浏览一些文章的时候,经常会发现文章中会有一些图片,上面会有一些标识,而这些标识就是我们经常说的水印了。很多时候,我们需要给图片加上一些修饰,好让别人能直观的认识到这个图片的出处以及来源,同时还能有效防止别人盗图。实现对图片的批量添加水印,可以告别繁琐的工作,增加工作效率。而对于添加水印和重命名,我们用到的模块有pillow,os,开发工具 sublime text 3。一、单张...

weixin_36190719的博客 202

AutoSAR系列讲解 - 前言

博主xyfx是一名汽车行业的嵌入式软件工程师,本职工作是同步电机的驱动控制(主要做FOC的,这个大家要是有兴趣,以后可以单独开一个专栏来讲解一下),由于做控制器的时候需要用到AutoSAR,所以特意的去学习了相关知识,同时博主自己也在同步提高中,有写的不合理的地方也请大家指正。我准备对AutoSAR开设两个大的方面来讲解,一是AutoSAR的入门篇,二是AutoSAR的实践篇,分别讲述AutoSAR的理论基础和工具的使用。

雪云飞星的博客 4万+

c++批量重命名_手把手教你用Python批量给图片添加水印 | 知了干货分享

我们在网上浏览一些文章的时候,经常会发现文章中会有一些图片,上面会有一些标识,而这些标识就是我们经常说的水印了。很多时候,我们需要给图片加上一些修饰,好让别人能直观的认识到这个图片的出处以及来源,同时还能有效防止别人盗图。实现对图片的批量添加水印,可以告别繁琐的工作,增加工作效率。而对于添加水印和重命名,我们用到的模块有pillow,os,开发工具 sublime text 3。一、单张...

weixin_39614109的博客 151

MIPI D-PHY TX 一致性测试实例解析 Part 03

本文之前,已经讨论了MIPI D-PHY TX的1.3.x和1.4.x的测试项,1.5.x的测试项相对较少,主要是用于时钟和数据通道相关的时序测量

一只豌豆象的博客 5195

解答网友疑问:聊聊 SAP MRP 中追溯需求的技术实现

笔者到 SE37 里一查,果然有这个 Function Module,并且在里面设置断点之后,执行事务码 MD09 之后,设置在该 Function Module 内的断点也触发了,看来 ChatGPT 比较靠谱。因为红色区域的显示,是通过用户在 MD09 的 ALV 界面上双击触发的,因此我们直奔用户输入模块,PROCESS AFTER INPUT,在 check_fcode 的实现体内设置断点。通过这种追溯,企业可以了解需求和供应之间的关系,从而优化生产和采购计划,减少库存积压,提升供应链效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1030

html自动给图片加上水印 代码_手把手教你用Python批量给图片添加水印!知了干货分享...

我们在网上浏览一些文章的时候,经常会发现文章中会有一些图片,上面会有一些标识,而这些标识就是我们经常说的水印了。很多时候,我们需要给图片加上一些修饰,好让别人能直观的认识到这个图片的出处以及来源,同时还能有效防止别人盗图。实现对图片的批量添加水印,可以告别繁琐的工作,增加工作效率。而对于添加水印和重命名,我们用到的模块有pillow,os,开发工具 sublime text 3。一、单张图片添加水...

weixin_39631350的博客 180

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

⭐️GUI编程:图片批量加水印,附打包exe教程带图标(干货巨多,建藏!)⭐️

![请添加图片描述](https://img-blog.csdnimg.cn/4add8159828e408c9d06d5873f2d94be.gif)

向日葵的专属太阳 7551

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

分享几个用Python给图片添加水印的方法,简单实用

今天来分享几种可以给图片添加水印的方法,都是十分的简单实用,大家在看了之后也可以私底下去自己试试,有些方法需要的代码量就比较少,有些方法需要的代码量就稍微多一些,那我们开始吧opencv模...

weixin_43373042的博客 1380

Python 一个在本地给图片添加水印的小工具

在日常业务办理过程中,不知大家是否养成了为重要文件添加水印的习惯?特别是通过微信等社交平台传输的证件照片、合同扫描件等敏感资料,建议都应当添加包含个人/企业信息的水印,这样既能保护隐私又能防止资料被滥用小编这里分享的小工具,是在本地进行操作,不用把照片上传到其他系统中,更好的保护了个人隐私。

DataShare 505

太妙了!几个用Python给图片添加水印的方法,简单实用!

今天来分享几种可以给图片添加水印的方法,都是十分的简单实用,大家在看了之后也可以私底下去自己试试,有些方法需要的代码量就比较少,有些方法需要的代码量就稍微多一些,那我们开始吧opencv模...

cainiao_python的博客 2582

干货案例!Python实现视频批量加水印,仅需50行代码

最近由于工作安排,同事需要经常大批量给视频添加水印,昨天反馈给我说,用的某软件批量添加水印过程真的很繁琐,效率也很低,加一个水印要好几分钟时间,你能不能帮我开发一个小工具直接达到“一键添加”的效果。作为一个Python老司机,思考片刻之后,我想到了用Python中的一个开源视频处理模块再适合不过了。

youmaob的博客 1277

使用 Python 对接 PicGo,实现自动添加水印并上传

1. 天下苦搬运党久矣 对于我这样经常需要写点文章的技术自媒体来说,很经常早上我才在公众号首发了原创文章,中午就有人同步到了知乎、今日头条等外部平台,并且拿到了该篇文章在这些平台的首发。 平台的首发很重要,以微信的公众号平台来说,一篇文章能否在公众号标原创,就是通过检测是否在公众号平台上首发,如果公众号的文章库里没有搜索到与你文章相似度较高的文章,那么你就可以标原创了。 为了解决了首发的问题,我付费使用了 OpenWrite 这个平台,每个月 20 块钱的费用,一键就可以分发各大平台,非常的省心~ 首发固

王炳明 2701

再见水印软件!2行Python给图片加水印,太太太强了

人生苦短,快学Python! 版权相当重要,对于某张图片,可能是你精心制作的思维导图,或者你精心设计的某个logo。你可能花费好多时间来弄,最后却被别人直接搬运过去使用,好气哦! 基于此,本文我就带着大家学学如何给你的图片加水印,仅需要2行Python代码,任何人都可以学会。

libaiup的博客 640

2行Python给图片加水印,太强了!

大家好,我是菜鸟哥!今天给大家分享一个非常实用的招数,对于某张图片,可能是你精心制作的思维导图,或者你精心设计的某个logo。你可能花费好多时间来弄,最后却被别人直接搬运过去使用,好气哦!...

cainiao_python的博客 1029
上一篇: 网络概述
下一篇: Jenkins+Python完整版
jspython
博客等级 码龄7年 61粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值