又很多添加水印的方法,如opencv模块、PIL模块但是感觉都较为复杂,filestools模块其本质上也是对ImageDraw.Draw.text()方法做了进一步的封装,让我们用起来更加的简便。
/usr/local/bin/pip3 install filestools -i https://pypi.douban.com/simple/ # 安装
我们使用add_mark()方法可以生成数量较多的水印,该方法有8个参数,比较重要的有
mark:水印的内容 水印样式包括color、size、opacity、space、angle:颜色、大小、不透明度、空间、角度 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import osfrom watermarker.marker import add_mark def update_img (dir ,water_name ): try : if not dir and water_name: print ("文件夹地址或水印名称不能为空" ) return for img_name in os.listdir(dir ): add_mark(file=os.path.join(dir ,img_name), out=os.getcwd(), mark=water_name, opacity=0.3 , angle=30 , space=70 , size=30 ) except FileNotFoundError and NotADirectoryError: print ("文件夹地址不正确" ) return if __name__ in '__main__' : update_img(dir ="图片地址" ,water_name="水印名字" )
1 2 3 4 5 6 7 8 9 函数名称:add_mark,用于实现添加水印。 file:原始照片; mark:使用哪些字符作为水印; out:添加水印后保存的位置; color:水印字体的颜色,默认颜色#8B8B1B; size:水印字体的大小,默认50; opacity:水印字体的透明度,默认0.15; space:水印字体之间的间隔, 默认75个空格; angle:水印字体的旋转角度,默认30度;
全局搜索并附加水印 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import os,shutil,globfrom watermarker.marker import add_mark def update_img (dir ,water_name ): if not dir and water_name: print ("文件夹地址或水印名称不能为空" ) return for img_name_dir in dir : add_mark(file=img_name_dir, out=os.getcwd(), mark=water_name, opacity=0.3 , angle=30 , space=70 , size=30 ) img_name=str (img_name_dir).split("/" )[-1 ] shutil.move(img_name,img_name_dir) print (img_name_dir,img_name) if __name__ in '__main__' : for key in ['webp' ,'png' ,'jpg' ,'jpeg' ]: image_list=glob.iglob(f"/Users/jerry/source/**/*.{key} " ,recursive=True ) update_img(dir =image_list,water_name="jerryWang" )