Python小技巧:两行代码实现批量给图片填加水印,这也太简单了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python小技巧:两行代码实现批量给图片填加水印,这也太简单了相关的知识,希望对你有一定的参考价值。
参考技术A我们平时要给图片加水印,但是又不会PS,免不了着急上火,还找不到人,想想还是得自己学一手~
而且图片很多的话,PS还是挺慢的,用Python一键生成即可,效率杠杠的。
准备工作
环境的话我这里使用的是 Python 和 pycharm
如果添加一张图片的水印,两行代码就实现了。
本次使用的模块是 filestools , 第三方模块,咱们需要手动安装一下。
win+r打开搜索框,输入cmd 按确定后弹出命令提示符窗口,输入 pip install filestools 即可安装成功。
代码解析
1、单张图片添加水印
模块导入
怎么使用 filestools 模块呢?
首先导入模块里面的一个方法,watermarker ,点上 marker ,然后 import add_mark
add_mark 已经包含了很多方法
file 是添加水印照片 ,mark 使用哪些字作为水印,out 保存的地方 ,color 颜色,size 水印字体的大小,opacity 不透明度,space 字体间距,angle 旋转角度。
假设我要给图片添加上:人生苦短, 快学python
咱们把图片和文字加进去即可,代码如下:
2、批量填加多张图片水印
批量给图片添加的话,需要用到 OS 模块。
导入一下
用os模块读取文件夹所有内容 ,使用 files 接收。
打印一下
现在所有文件名字都有了
通过 for 循环遍历都打印出来
然后将文件添加进去,我们读取的是 img_1 里面的内容,那就把这个文件里的内容都传进去,保存数据的时候,都会保存在这里面。
再改一下透明度
我这里改成0.5
这样就清晰多了~
Python批量添加图片水印
一、前言
现在盗图是非常常见的事情,许多人在使用图片时都不会标注图片的出处或者提及作者,这个时候水印就是个很好的东西了。我们可以给图片添加水印后再分享出去,这样就可以让其它人知道图片作者相关的信息。今天我们就带大家来实现水印的添加。
二、文字水印
在添加水印的时候,我们比较常用的就是文字水印。比如@ZackSock
、@juejin:ZackSock
等。这种水印的添加非常简单,只需要使用到Pillow
模块的添加文字的操作即可,代码如下:
from PIL import Image, ImageFont, ImageDraw
# 加载字体
font = ImageFont.truetype('msyh.ttc', 60)
# 加载图片
im = Image.open('im.jpg')
# 创建画笔
drawer = ImageDraw.Draw(im)
# 准备文本
text = '@ZackSock'
# 绘制文本
drawer.text((0, 0), text, (0, 255, 0), font)
im.show()
这里需要注意几个地方,第一个就是水印大小。水印大小也就是文字大小,这个是由:
font = ImageFont.truetype('msyh.ttc', 60)
中第二个参数决定的,因此我们可以通过调节该参数调整水印大小。
第二点就是水印位置和水印颜色,这个就是通过:
drawer.text((0, 0), text, (0, 255, 0), font)
中第一个和第三个参数决定的,其中(0,0)表示水印左上角的坐标,而(0,255,0)表示水印的RGB值,具体调节可以参考RGB配色表。
三、图片水印
文字水印使用起来比较方便,但是有时候我们更习惯将有代表性的logo作为水印,这个时候就可以图片水印了,代码如下:
from PIL import Image
im = Image.open('origin.png').convert('RGBA')
watermark = Image.open('watermark.png').convert('RGBA')
w, h = im.size
watermark.thumbnail((w//6, h//6))
r, g, b, a = watermark.split()
# 获取水印尺寸
w2, h2 = watermark.size
# 计算位置
x = w-w2
y = h-h2
# 粘贴
im.paste(watermark, (x, y), mask=a)
im.show()
效果图如下:
以上是关于Python小技巧:两行代码实现批量给图片填加水印,这也太简单了的主要内容,如果未能解决你的问题,请参考以下文章