Python 批量加水印只需一行命令!

Python 批量加水印只需一行命令!

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

1. 在线工具需要将图片上传到对方服务器,信息不安全。

2. 很多工具不具备批量处理功能。

3. 很多工具自定义的功能太少,如水印透明度,字体等。

4. 操作繁琐。

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

1. 支持自定义水印字体。

2. 支持自定义文本内容、颜色。

3. 支持批量处理。

4. 支持设定水印与水印之间的空间。

5. 支持设定水印字体大小。

6. 支持设定透明度。

7. 自己的代码,安全。

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

​​https://www.php.cn/link/4b5b81483048c8942ed00caaa17b9535​​

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

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

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

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

git clone https://www.php.cn/link/4b5b81483048c8942ed00caaa17b9535.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 批量加水印只需一行命令!的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2241813.html

(0)
上一篇 2025年2月26日 20:44:57
下一篇 2025年2月24日 04:44:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 一行 Python 代码实现并行

    Python 在程序并行化方面多少有些声名狼藉。撇开技术上的问题,例如线程的实现和 GIL,我觉得错误的教学指导才是主要问题。常见的经典 Python 多线程、多进程教程多显得偏”重”。而且往往隔靴搔痒,没有深入探讨…

    2025年2月26日
    200
  • Python 字符串总结,建议收藏!

    什么是 Python 字符串 字符串是包含一系列字符的对象。字符是长度为 1 的字符串。在 Python 中,单个字符也是字符串。但是比较有意思的是,Python 编程语言中是没有字符数据类型的,不过在 C、Kotlin 和 Java 等其…

    2025年2月26日
    200
  • Python使用Dash开发网页应用

    Python Dash开发Web应用的控件基础 本文主要是通过Dash的Checklist组件,简单介绍使用Dash开发的Web应用 展示效果如下: python dash简单基础 Dash应用程序由两部分组成: 第一部分是应用程序的布局(…

    2025年2月26日
    200
  • Python自动化办公之Excel拆分并自动发邮件

    需求 需要向大约 500 名用户发送带有 Excel 附件的电子邮件,同时必须按用户从主 Excel 文件中拆分数据以创建他们自己的特定文件,然后将该文件通过电子邮件发送给正确的用户 需求解析 大致的流程就是上图,先拆分 Excel 数据,…

    2025年2月26日 编程技术
    200
  • 提高数据科学效率的八个Python神库!

    1、Optuna Optuna 是一个开源的超参数优化框架,它可以自动为机器学习模型找到最佳超参数。 最基本的(也可能是众所周知的)替代方案是 sklearn 的 GridSearchCV,它将尝试多种超参数组合并根据交叉验证选择最佳组合。…

    2025年2月26日
    200
  • 用Python处理MP4与GIF格式互转,简单到爆!

    上次公众号写文章的时候,遇到个问题,公众号插入视频文件太繁琐,一个很小的视频,作为视频传上去平台还要审核,播放的时候也没gif来的直接。 于是想着找个工具将mp4转换成gif。网上搜一下,在线的工具好多,但是各种套路,有些要点广告,有些要先…

    2025年2月26日
    200
  • 新手如何找到合适的Python第三方库?

    1、百度谷歌搜索 明确自己的需求,用Python来干什么,力求简短明了。比如定位“数据分析”,然后去搜索关键词【Python+数据分析+第三方库】,会出现很多博客推荐的关于数据分析的第三方库. 这也是大部分人找Python库的方法,也是最简…

    2025年2月26日 编程技术
    200
  • 如何用上下文管理器扩展 Python 计时器

    上文中我们创建的第一个 Python 计时器类,然后逐步扩展我们 Timer 类,其代码也是较为丰富强大。我们不能满足于此,仍然需要模板一些代码来使用Timer: 首先,实例化类其次,在要计时的代码块之前调用.start()最后,在代码块之…

    2025年2月26日
    200
  • 三种方案 | 抛弃for循环,让Python代码更pythonic !

    为什么要挑战自己在代码里不写 for loop?因为这样可以迫使你去学习使用比较高级、比较地道的语法或 library。文中以 python 为例子,讲了不少大家其实在别人的代码里都见过、但自己很少用的语法。 自从我开始探索 Python …

    2025年2月26日
    200
  • 提高 Python 代码可读性的五个基本技巧

    Python 中有许多方法可以帮助我们理解代码的内部工作原理,良好的编程习惯,可以使我们的工作事半功倍! 例如,我们最终可能会得到看起来很像下图中的代码。虽然不是最糟糕的,但是,我们需要扩展一些事情,例如: load_las_file 函数…

    2025年2月26日 编程技术
    200

发表回复

登录后才能评论