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]匹配数字;
以上,如果对你有帮助的话,点个赞吧❤️~
python-批量添加图片水印的更多相关文章
- 「Python实用秘技04」为pdf文件批量添加文字水印
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第4期 ...
- Swift - 给图片添加图片水印(图片上绘制另一张图,并可设透明度)
我前面写了篇文章讲解如何给图片添加文字水印,而如果想要添加图片类型的水印也很简单,只要把原来代码里添加文字的部分改成图片即可. 1,效果图如下: (在图片左上角添加了一个半透明的logo图片) 2,为 ...
- javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印
欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...
- 如何批量添加图片到ppt的方法
如何批量添加图片到ppt 许多时候会做一些幻灯片,需要大量的图片,但是往往一张以张的加图片,会很浪费时间,如何快速添加图片,一次解决呢? 步骤:插入-相册-点击相册 点击文件,批量选择你要插入的图片, ...
- Python批量修改图片格式和尺寸
Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入 ...
- 利用iTextSharp组件给PDF文档添加图片水印,文字水印
最近在做关于PDF文档添加水印的功能,折腾了好久,终于好了.以下做个记录: 首先会用到iTextSharp组件,大家可以去官网下载,同时我也会在本文中附加进来. 代码中添加引用为: using S ...
- python批量添加hexo文章封面
❝ 本文需要工具: 「excel」 「python3.x」 ❞ 今天突然觉得,我的博客的文章更新这么多了竟然还没有一个封面,觉得首页相当低调了- 首页 正好皮肤带有文章封面功能,所以我觉得要将文章批量 ...
- Python 批量修改图片格式和尺寸
公司的一个项目要求把所有4096x4096的图片全部转化成2048x2048的图片,这种批量转换图片大小的软件网上很多,我的同事原来使用的美图看看的批量转换,但是稍微有点麻烦,每次还需要指定要转换的图 ...
- tinypng的python批量压缩图片功能
tinypng网站提供的图片压缩功能很不错,但是直接在网站上压缩有限制,大量压缩图片时比较麻烦,还好官方提供了很多脚本的自动化压缩接口.下面简单说下python批量压缩步骤. 1.申请api key ...
随机推荐
- iptable用法
一:添加屏蔽IP #禁止此IP访问服务器iptables -I INPUT -s 1.2.3.4 -j DROP或iptables -A INPUT -s 1.2.3.4 -j DROP#禁止服务器访 ...
- python 从外部获取传入的参数
有时候我们在执行python程序的时需要接收到外部传入的参数 python的 sys.argv[]就能实现 # test.py import sys #引入模块 str = sys.argv[1]pr ...
- MySQL视图 索引 存储过程 触发器 函数
视图: 也就是一个虚拟表(不是真实存在的),它的本质就是根据SQL语句获取动态的数据集,并为其命名.用户使用时只需要使用命名的视图即可获取结果集,并可以当做表来使用.它的作用就是方便查询操作,减 ...
- [bug] 验证selenium的显式和隐式等待而发现的一个低级错误
隐式等待:如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步.按照这说法举了个例子为啥不会按照预期执行了,难不成是这个定义有问题(~~~~~直接否定不是定义的问题,相信它 ...
- Codeforces gym 101343 A. On The Way to Lucky Plaza【概率+逆元+精度问题】
2017 JUST Programming Contest 2.0 题目链接:http://codeforces.com/gym/101343/problem/A A. On The Way to ...
- 解决 docker ulimit open file 过少的问题
解决方法: ExecStart=/usr/bin/dockerd -- -- -- -- --insecure-registry= --dns --dns-opt timeout: --dns-opt ...
- day22 Pythonpython 本文sys模块
一.sys模块 用来提供对Python解释器相关的操作 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.versio ...
- linux shell脚本调用java main方法 代码传值
#!/bin/bash #description: ljdjService export PRG_HOME=/ainmc/work/toptea/dataTransfer PRG_KEYWORD=pr ...
- Java内存区域划分、内存分配原理(转)
文章引用自 http://blog.csdn.net/OyangYujun/article/details/41173747 运行时数据区域 Java虚拟机在执行Java的过程中会把管理的内存划分为若 ...
- YOCVM
一.热补丁的本质 对于线上紧急的bug,重新提审AppStore的时间过长.因此,能够下发一段补丁代码到线上运行,并结合Runtime,实时改变App原有的行为,就显得极为重要.补丁代码的形式可以有很 ...