一行Python命令实现批量加水印


Posted in Python onApril 07, 2022

工作的时候,尤其是自媒体工作者,必备水印添加工具以保护知识产权,网上有许多的在线/下载的水印添加工具,但他们或多或少都存在以下问题:

  • 1. 在线工具需要将图片上传到对方服务器,信息不安全。
  • 2. 很多工具不具备批量处理功能。
  • 3. 很多工具自定义的功能太少,如水印透明度,字体等。
  • 4. 操作繁琐。

现在只要你会使用命令,我们就能教大家怎么使用Python超级简单地为图片添加水印,而且具备以下特点:

  • 1. 支持自定义水印字体。
  • 2. 支持自定义文本内容、颜色。
  • 3. 支持批量处理。
  • 4. 支持设定水印与水印之间的空间。
  • 5. 支持设定水印字体大小。
  • 6. 支持设定透明度。
  • 7. 自己的代码,安全。

我们需要使用的是2Dou的开源项目

非常有用的开源项目,感谢原作者。

有三种方法可以下载这个项目:

1. 如果你的网络可以上github,你可以进入该页面,点击clone or download 然后点击Download Zip.

2. 如果你有下载git,可以用cmd/terminal进入你想放置的文件夹,输入命令:

git clone https://github.com/2Dou/watermarker.git

3. 如果你都没有,可以直接在 Python实用宝典 公众号后台回复 水印 下载本文完整修复版代码。

下载解压到你想要放置的任意一个文件夹下。路径中最好不要带中文名,如果你是用前两种方法下载的,而且是windows系统用户,注意要把该项目的字体文件名改为英文,另外marker.py里也有一个地方需要改动,如下:

一行Python命令实现批量加水印

将font文件夹里的 青鸟华光简琥珀.ttf 改为 bird.ttf, 什么名字不重要,重点是不要用中文名,否则pillow会无法使用改文件。

注意marker.py文件里的第十行要改成相应的名字,与font文件夹下的字体文件名相对应。

刚刚我们提到了pillow这个库,这个包的运行需要使用到这个第三方库,它是专门用来处理图像的,打开CMD/Terminal, 输入以下命令即可安装:

pip install pillow

安装完毕后,我们可以试一下!最普通的例子如下,将你所需要加水印的图片放在该项目的input文件夹下,然后在cmd/Terminal中进入你存放该项目的文件夹输入以下命令:

python marker.py -f ./input/baby.jpg -m python实用宝典

各个参数的含义如下:

  • -f 文件路径:是你的图片的路径
  • -m 文本内容:是你想要打的水印的内容

参数不设置则为默认值,运行完毕后会在output文件夹下出现相应的加了水印的图片,效果如下:

一行Python命令实现批量加水印

添加水印

默认水印的颜色是...屎黄色的?

但是没关系,我们可以修改它的颜色,添加-c参数即可!(参数默认格式为 #号后加6位16进制),利用图像工具,我们可以找到你喜欢的颜色的值:

然后我们输入命令:

python marker.py -f ./input/baby.jpg -m python实用宝典 -c #232862

成功了!看看效果:

一行Python命令实现批量加水印

修改水印颜色

恩!变好看了,但是好像水印的颜色有点深,我们可以修改一下透明度让它变浅一点,默认的透明度为0.15,可以让这个值变得更小,设定opacity参数:

python marker.py -f ./input/baby.jpg -m python实用宝典 -c #232862 --opacity 0.08

结果如下:

一行Python命令实现批量加水印

水印变得更透明

其实还有其他参数可以,我们就不一一展示了,一共有这些参数:

  • -f 参数,指定打水印的文件,如果你想打印整个文件夹,则输入该文件夹路径即可。
  • -m 参数,指定水印内容。
  • -o 参数,指定输出水印文件的位置,默认为output文件夹。
  • -c 参数,指定水印的颜色,默认值为shi..啊不,黄色,#8B8B1B.
  • -s 参数,指定水印与水印之间的空隙,默认值为75.
  • -a 参数,指定水印的旋转角度,我们的例子中都是默认值30度。
  • --size参数,指定水印文本字体大小,默认值为50。
  • --opacity参数,指定透明度,默认为0.15,数值越小越透明。

接下来给大家试试批量处理功能,首先把所有图片放置到项目的input文件夹下:

然后输入命令里,指定文件夹即可!

python marker.py -f ./input -m python实用宝典 -c #232862 --o

你会看到input文件夹名后没有/baby.jpg了,这表明将input文件夹下所有的图片打水印。

一行Python命令实现批量加水印

看到 文件名 succes 则说明批处理成功!

还有一个隐藏功能!如果你想要修改字体也可以哦!还记得我们前面怎么修复windows的中文名问题吗?如图,你只要将新的字体文件放到font文件夹下,然后修改TTF_FONT变量里的字体名字,与font文件夹下的新字体名字相对应即可改成你想要的字体了!

一行Python命令实现批量加水印

修改字体

到此这篇关于一行Python命令实现批量加水印的文章就介绍到这了,更多相关Python加水印内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python删除指定类型(或非指定)的文件实例详解
Jul 06 Python
python实现中文分词FMM算法实例
Jul 10 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python+django实现文件下载
Jan 17 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
基于Python检测动态物体颜色过程解析
Dec 04 Python
基于Python 中函数的 收集参数 机制
Dec 21 Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 Python
Python基于read(size)方法读取超大文件
Mar 12 Python
keras导入weights方式
Jun 12 Python
浅析Python 多行匹配模式
Jul 24 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
详解Python中*args和**kwargs的使用
Apr 07 #Python
Python列表的索引与切片
Apr 07 #Python
Python字符串的转义字符
Python字符串格式化方式
Apr 07 #Python
Python中re模块的元字符使用小结
Python基本知识点总结
Apr 07 #Python
You might like
php中heredoc与nowdoc介绍
2014/12/25 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
python多线程扫描端口示例
2014/01/16 Python
Python中apply函数的用法实例教程
2014/07/31 Python
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
python爬取招聘要求等信息实例
2020/11/20 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
新疆民族团结演讲稿
2014/08/27 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
民主评议党员个人总结
2015/02/13 职场文书
小学生读书笔记
2015/07/01 职场文书
OpenCV-Python实现油画效果的实例
2021/06/08 Python
教你一步步实现一个简易promise
2021/11/02 Javascript