python-批量添加图片水印
前言:
最近总是被无良公众号和培训机构拷贝文章,他们根本不会给你备注原文出处,这种行为真的让人不高兴,所以计划以后的文章都添加上自己的水印。
话不多说,直接上代码。
一、单张图片添加文字水印
# -*- coding: utf-8 -*- # @Time : 2018/5/9 上午11:31 # @Author : xiaoxi # @File : watermark.py from PIL import Image from PIL import ImageDraw from PIL import ImageFont imageFile = "/Users/截图图库/1.jpg" im = Image.open(imageFile) font = ImageFont.truetype('/Library/Fonts/Songti.ttc', 26) font1 = ImageFont.truetype('/Library/Fonts/Zapfino.ttf', 16) draw = ImageDraw.Draw(im) draw.text((im.size[0]-330, im.size[1]-85), u'简书「小喜」', fill=(134, 153, 153), font=font) draw.text((im.size[0]-500, im.size[1]-45), u'http://www.jianshu.com/u/da1677475c27', fill=(134, 153, 153),font=font1) im.save(r"/Users/简书素材/target.jpg")
二、单张图片添加图片水印
# -*- coding: utf-8 -*- # @Time : 2018/5/9 上午11:31 # @Author : xiaoxi # @File : watermark.py from PIL import Image from PIL import ImageDraw from PIL import ImageFont watermark = Image.open("/Users/截图图库/5.jpg") imageFile = Image.open("/Users/截图图库/4.jpg") layer = Image.new('RGBA', imageFile.size, (0,0,0,0)) layer.paste(watermark, (imageFile.size[0]-300, imageFile.size[1]-80)) out=Image.composite(layer,imageFile,layer) out.save(r"/Users/简书素材/target.jpg")
三、批量图片添加文字水印
# -*- coding: utf-8 -*- # @Time : 2018/5/9 上午11:31 # @Author : xiaoxi # @File : watermark.py import datetime import glob from time import sleep from PIL import Image from PIL import ImageDraw from PIL import ImageFont def watermark(): for files in glob.glob('/Users/截图图库/*.png'): font = ImageFont.truetype('/Library/Fonts/Songti.ttc', 26) font1 = ImageFont.truetype('/Library/Fonts/Zapfino.ttf', 16) im = Image.open(files) draw = ImageDraw.Draw(im) draw.text((im.size[0] - 330, im.size[1] - 85), u'简书「小喜」', fill=(134, 153, 153), font=font) draw.text((im.size[0] - 500, im.size[1] - 45), u'http://www.jianshu.com/u/da1677475c27', fill=(134, 153, 153), font=font1) dir = "/Users/简书素材/" name = datetime.datetime.now().strftime("%Y%m%d%H%M%S") filename = dir + name + '_result.jpg' sleep(2) im.save(filename) if __name__=='__main__': watermark()
四、相关答疑
1、添加中文水印时,必须选择支持中文的字体,例如:
2、glob库
glob库是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用 windows 下的文件搜索差不多。查找文件只用到三个匹配符:
”*”:匹配 0 个或多个字符;
“?”: ”?”匹配单个字符;
“[]”:”[]”匹配指定范围内的字符,如:[0-9]匹配数字;
以上,如果对你有帮助的话,点个赞吧️~
作者:搁浅
出处: http://www.cnblogs.com/xiaoxi-3-/
如果对您有帮助,请关注我的同名简书:https://www.jianshu.com/u/da1677475c27
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【python进阶】深入理解系统进程1
前言 之前程序执⾏都是⼀条腿⾛路,甚⾄是⽤⼀杆枪来打天下。 通过系统编程的学习,会让⼤家有“多条腿”⼀起⾛路,就好⽐有了⼀把机关枪。 此篇为深入理解进程第一篇,下面开始今天的说明~~~ 多任务的引入 现实生活中 有很多的场景中的事情是同时进⾏的,⽐如开⻋的时候⼿和脚共同来驾驶汽⻋,再⽐如唱歌跳舞也是同时进⾏的;如下视频是:迈克杰克逊的⼀段视频: http://v.youku.com/v_show/id_XMzE5NjEzNjA0.html 试想,如果把唱歌和跳舞这2件事情分开依次完成的话,估计就没有那么好的效果了(想⼀下场景:先唱歌,然后在跳舞,O(∩_∩)O哈哈~) 程序中 如下程序,来模拟“唱歌跳舞”这件事情 from time import sleep def sing(): for i in range(3): print("正在唱歌...%d"%i) sleep(1) def dance(): for i in range(3): print("正在跳舞...%d"%i) sleep(1) if __name__ == '__main__': sing()#唱歌 dance(...
- 下一篇
JavaAgent-SandBox
1.前言 之前初步学习了javaAgent,并做了一份总结《JavaAgent学习笔记》。然后在看到《JVM-Sandbox 基于JVM的非侵入式运行期AOP解决方案》之后,接触到了集团的sandBox。并尝试使用这种有真正应用场景的运行时AOP框架。 2.SandBox简介 sandBox是集团开发的一种非侵入式的运行时AOP解决方案,它能动态地将你要实现的代码模块打包编织到目标代码中,实现事件的监听、切入与代码增强。我们一般可以使用以下场景: 线上故障定位 线上系统流控 线上故障模拟 方法请求录制和结果回放 动态日志打印 安全信息监测和脱敏 行链路计算和覆盖率统计 详细的介绍可以阅读这篇篇文章《JVM-Sandbox 基于JVM的非侵入式运行期AOP解决方案》,个人简单总结以下几点: 2.1 AOP切入方式 SandBox围绕“EventListene
相关文章
文章评论
共有0条评论来说两句吧...