前言:

最近总是被无良公众号和培训机构拷贝文章,他们根本不会给你备注原文出处,这种行为真的让人不高兴,所以计划以后的文章都添加上自己的水印。

话不多说,直接上代码。


一、单张图片添加文字水印

# -*- 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-批量添加图片水印的更多相关文章

  1. 「Python实用秘技04」为pdf文件批量添加文字水印

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第4期 ...

  2. Swift - 给图片添加图片水印(图片上绘制另一张图,并可设透明度)

    我前面写了篇文章讲解如何给图片添加文字水印,而如果想要添加图片类型的水印也很简单,只要把原来代码里添加文字的部分改成图片即可. 1,效果图如下: (在图片左上角添加了一个半透明的logo图片) 2,为 ...

  3. javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...

  4. 如何批量添加图片到ppt的方法

    如何批量添加图片到ppt 许多时候会做一些幻灯片,需要大量的图片,但是往往一张以张的加图片,会很浪费时间,如何快速添加图片,一次解决呢? 步骤:插入-相册-点击相册 点击文件,批量选择你要插入的图片, ...

  5. Python批量修改图片格式和尺寸

    Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入 ...

  6. 利用iTextSharp组件给PDF文档添加图片水印,文字水印

    最近在做关于PDF文档添加水印的功能,折腾了好久,终于好了.以下做个记录: 首先会用到iTextSharp组件,大家可以去官网下载,同时我也会在本文中附加进来. 代码中添加引用为:   using S ...

  7. python批量添加hexo文章封面

    ❝ 本文需要工具: 「excel」 「python3.x」 ❞ 今天突然觉得,我的博客的文章更新这么多了竟然还没有一个封面,觉得首页相当低调了- 首页 正好皮肤带有文章封面功能,所以我觉得要将文章批量 ...

  8. Python 批量修改图片格式和尺寸

    公司的一个项目要求把所有4096x4096的图片全部转化成2048x2048的图片,这种批量转换图片大小的软件网上很多,我的同事原来使用的美图看看的批量转换,但是稍微有点麻烦,每次还需要指定要转换的图 ...

  9. tinypng的python批量压缩图片功能

    tinypng网站提供的图片压缩功能很不错,但是直接在网站上压缩有限制,大量压缩图片时比较麻烦,还好官方提供了很多脚本的自动化压缩接口.下面简单说下python批量压缩步骤. 1.申请api key ...

随机推荐

  1. 合理配置SQLSERVER内存

    合理配置SQLSERVER内存 原文地址:https://www.cnblogs.com/lyhabc/archive/2012/09/28/2707857.html SQLSERVER是个很喜欢内存 ...

  2. vi 复制或剪切多行超级强大方法

    同一个文件:光标移到起始行,输入ma 光标移到结束行,输入mb 光标移到粘贴行,输入mc 然后 :'a, 'b co 'c 把 co 改成 m 就成剪切了多个文件:在文件一: 光标移到起始行,输入ma ...

  3. DLL加载顺序

    最近碰到了一个问题,要引入一个第三方的SDK,但是SDK中使用的一些dll和我原本程序里面有些dll是同名的,而且本程序的dll和sdk的dll名称都不能修改. 解决这个问题,首先想到的就是多进程,这 ...

  4. 用python写个简单的小程序,编译成exe跑在win10上

    每天的工作其实很无聊,早知道应该去IT公司闯荡的.最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅. 人的精力毕竟是有限的,所以 ...

  5. July 10th, Week 29th Sunday, 2016

    Everything is good when new, but friend when old. 老朋友更醇香. When did you meet with your last friends l ...

  6. mysql中左连接后,最终的记录数大于左边表的记录分析

    如果B表符合条件的记录数大于1条,就会出现1:n的情况,这样left join后的结果,记录数会多于A表的记录数. 例如:member与member_login_log表的结构如下,member记录会 ...

  7. Discrete Logging ZOJ - 1898 (模板题大小步算法)

    就是求Ax三B(mod C)当C为素数时 #include<cstdio> #include<cstring> #include<cmath> #include&l ...

  8. js中typeof与instanceof用法小记

    今天写JS代码,遇到动态生成多个名称相同的input复选按钮 需要判断其是否是数组,用到了if (typeof(document.MapCheckMgr.checkid)!="undefin ...

  9. go标准库的学习-encoding/base64

    参考:https://studygolang.com/pkgdoc 导入方式: import "encoding/base64" base64实现了RFC 4648规定的base6 ...

  10. MetaMask/obs-store

    https://github.com/MetaMask/obs-store ObservableStore ObservableStore is a synchronous in-memory sto ...