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

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

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

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

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

4. 操作繁琐。

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

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

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

3. 支持批量处理。

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

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

6. 支持设定透明度。

7. 自己的代码,安全。

我们需要使用的是2Dou的开源项目:
https://github.com/2Dou/watermarker
非常有用的开源项目,感谢原作者。

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

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

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

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

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

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

将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文件夹下出现相应的加了水印的图片,效果如下:

添加水印

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

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

然后我们输入命令:

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

成功了!看看效果:

修改水印颜色

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

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

结果如下:

水印变得更透明

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

  1. -f 参数,指定打水印的文件,如果你想打印整个文件夹,则输入该文件夹路径即可。

  2. -m 参数,指定水印内容。

  3. -o 参数,指定输出水印文件的位置,默认为output文件夹。

  4. -c 参数,指定水印的颜色,默认值为shi..啊不,黄色,#8B8B1B.

  5. -s 参数,指定水印与水印之间的空隙,默认值为75.

  6. -a 参数,指定水印的旋转角度,我们的例子中都是默认值30度。

  7. --size参数,指定水印文本字体大小,默认值为50。

  8. --opacity参数,指定透明度,默认为0.15,数值越小越透明。

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

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

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

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

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

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

修改字体

我们的文章到此就结束啦,如果你希望我们今天的Python教程,请持续关注我们,如果对你有帮助,麻烦在留言区给个三连哦!

推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片点阅读原文,领廖雪峰视频资料!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用Pillow库来批量水印,具体步骤如下: 1. 安装Pillow库:在命令行中执行 `pip install Pillow` 进行安装。 2. 编写代码:可以参考下面的示例代码,进行修改和适应自己的求。 ```python from PIL import Image, ImageDraw, ImageFont import os # 要添水印的文件夹路径 folder_path = 'path/to/folder' # 水印文字和字体大小 watermark_text = 'watermark' font_size = 30 # 水印颜色和透明度 watermark_color = (255, 255, 255, 128) # 遍历文件夹中的所有图片文件 for filename in os.listdir(folder_path): if filename.endswith('.jpg') or filename.endswith('.png'): # 打开图片并添水印 image_path = os.path.join(folder_path, filename) image = Image.open(image_path).convert('RGBA') watermark = Image.new('RGBA', image.size, (0, 0, 0, 0)) draw = ImageDraw.Draw(watermark) font = ImageFont.truetype('arial.ttf', font_size) text_width, text_height = draw.textsize(watermark_text, font) x = image.width - text_width - 10 y = image.height - text_height - 10 draw.text((x, y), watermark_text, font=font, fill=watermark_color) image_with_watermark = Image.alpha_composite(image, watermark) # 保存图片 image_with_watermark.save(image_path) ``` 3. 运行代码:在命令行中执行 `python watermark.py` 运行代码,并等待程序执行完成。 注意:在运行代码前,要将代码中的 `folder_path` 修改为要添水印的文件夹路径,将 `watermark_text` 修改为要添水印文字,将 `font_size` 修改为水印的字体大小,将 `watermark_color` 修改为水印的颜色和透明度。另外,代码中使用的是默认的字体 `arial.ttf`,如果你想要使用其他字体,要将字体文件放到代码所在的目录下,并将字体文件名修改为相应的名称。 ### 回答2: 在Python批量水印可以通过使用PIL(Python Imaging Library)库来实现。以下是一个简单的示例代码: ```python from PIL import Image from PIL import ImageDraw from PIL import ImageFont import os def add_watermark(input_dir, output_dir, watermark_text): # 遍历输入目录中的所有图片文件 for file_name in os.listdir(input_dir): if file_name.endswith('.jpg') or file_name.endswith('.png'): # 打开图片文件 input_path = os.path.join(input_dir, file_name) image = Image.open(input_path).convert('RGBA') # 创建水印文本 watermark = Image.new('RGBA', image.size, (255, 255, 255, 0)) draw = ImageDraw.Draw(watermark) font = ImageFont.truetype('arial.ttf', 36) text_width, text_height = draw.textsize(watermark_text, font=font) text_x = image.width - text_width - 10 text_y = image.height - text_height - 10 draw.text((text_x, text_y), watermark_text, fill=(128, 128, 128, 128), font=font) # 将水印到原始图片中 watermarked = Image.alpha_composite(image, watermark) # 保存水印图片 output_path = os.path.join(output_dir, file_name) watermarked.save(output_path) ``` 使用以上代码,你可以将水印文本添到指定目录中的所有图片上,生成带有水印的图片并保存到输出目录中。你只要指定输入目录、输出目录以及要添水印文本即可。注意,你要提前安装PIL库,并将所的字体文件(例如arial.ttf)放在与你的Python脚本相同的目录下。 ### 回答3: 使用Python批量水印可以借助第三方库进行操作。下面我以使用Pillow库为例来解释: 1. 首先,确保你已经安装了Pillow库。可以使用以下命令安装:pip install pillow。 2. 导入Pillow库和其他要的库:from PIL import Image, ImageDraw, ImageFont, ImageEnhance 3. 批量水印的主要步骤如下: - 遍历水印的图片,可以使用os库的相关函数来获取图片文件列表。 - 水印图片和背景图片:watermark_img = Image.open('水印图片路径'),background_img = Image.open('背景图片路径')。 - 调整水印的大小:可以使用watermark_img.thumbnail()函数来调整水印图片的大小。 - 在背景图片上添水印:使用ImageDraw库的text()函数,在background_img对象上进行绘制。 - 保存水印的图片:使用background_img对象的save()函数将图片保存到指定目录下。 4. 示例代码如下: ```python from PIL import Image, ImageDraw, ImageFont import os # 水印图片和背景图片 watermark_img = Image.open('水印图片路径') # 调整水印的大小 watermark_img.thumbnail((100, 100)) # 自定义水印大小 watermark_width, watermark_height = watermark_img.size # 获取所有水印的图片文件列表 image_dir = '图片文件夹路径' image_files = [file for file in os.listdir(image_dir) if file.endswith(('.jpg', '.png'))] # 设置水印文字的样式 watermark_text = "水印文字" watermark_font = ImageFont.truetype('字体文件路径', 30) # 自定义字体和大小 # 遍历图片列表,添水印 for image_file in image_files: image_path = os.path.join(image_dir, image_file) background_img = Image.open(image_path) # 在背景图片上添水印 draw = ImageDraw.Draw(background_img) draw.text((background_img.size[0] - watermark_width, background_img.size[1] - watermark_height), watermark_text, fill=(255, 255, 255), font=watermark_font) # 保存水印的图片 output_dir = '保存水印图片的文件夹路径' output_path = os.path.join(output_dir, image_file) background_img.save(output_path) background_img.close() ``` 通过以上步骤和示例代码,你可以使用Python批量水印到多张图片中。请确保提供正确的水印图片路径、背景图片路径、字体文件路径和保存水印图片的文件夹路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值