出于无聊,用了半小时写(Copy)了一个给照片自动加水印的脚本。大概功能就是将特定照片在右下角添加时间、尺寸、GPS信息(无人机或者手机有)和版权信息。当然,还不够完善,有空了加上读取目录中所有JPG的功能,以及自适应字体大小的功能。

import os

from PIL import Image

from PIL.ExifTags import TAGS

from PIL import ImageFont

from PIL import ImageDraw

def get_exif_data(fname):

"""Get embedded EXIF data from image file."""

ret = {}

try:

img = Image.open(fname)

if hasattr( img, '_getexif' ):

exifinfo = img._getexif()

if exifinfo != None:

for tag, value in exifinfo.items():

decoded = TAGS.get(tag, tag)

ret[decoded] = value

size = img.size

except IOError:

print('IOERROR ' + fname)

return ret,size

def addText(fname,text):

img = Image.open(fname)

draw = ImageDraw.Draw(img)

# font = ImageFont.truetype(, )

font = ImageFont.truetype("Andale.ttf", 64)

# draw.text((x, y),"Sample Text",(r,g,b))

draw.text((img.size[0]-img.size[0]/6,img.size[1]-img.size[1]/10),text,(255,255,255),font=font)

img.save('sample-out.jpg')

print('Added text')

if __name__ == '__main__':

fileName = r'/Users/li-yang/Desktop/DSC04467_1.jpg'

copyright = 'Photo by YangLi'

exif,size = get_exif_data(fileName)

print(exif)

size = str(size[0]) +'*'+ str(size[1])

if 'DateTimeOriginal' in exif:

time = exif['DateTimeOriginal']

else:

time= 'No Time Info'

if 'Model' in exif:

model = exif['Model']

else:

model = 'No Model Info'

if 'GPSInfo' in exif:

GPS = exif['GPSInfo']

else:

GPS = 'No GPS Info'

text = time +'\n' + size +'\n' +GPS+'\n' +copyright

addText(fileName,text)

python批量添加水印_利用Python的PIL库给照片批量加水印 – 摄影与挖洞相关推荐

  1. python批量添加水印_用Python批量添加水印,提高工作效率!

    平常工作中,为保护原创,我们常常会给图片打水印,但是一般的工具存在水印只能添加在固定位置(比如左上.左下等),或者无法批量添加水印的问题.这些不灵活的应用会影响我们的工作效率. 今天,未明学院的老师就 ...

  2. python批量生成图片_利用Python批量生成任意尺寸的图片

    实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...

  3. python win10 桌面_利用Python批量提取Win10锁屏壁纸实战教程

    前言 相信使用Win10的朋友会发现,每次开机锁屏界面都会有不一样的漂亮图片,这些图片通常选自优秀的摄影作品,十分精美. 但是由于系统会自动更换这些图片,所以就算再好看的图片,也许下次开机之后就被替换 ...

  4. python爬虫背景_利用Python代码实现一键抠背景功能

    前言 又是一个逛csdn发现的一个有趣的小项目,可以一键抠背景,需要用到removebg模块及其API,API可从其官网免费获取,网址如下https://www.remove.bg/zh ps:加上/ ...

  5. python照片墙地图_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  6. python高斯求和_利用Python进行数据分析(3)- 列表、元组、字典、集合

    本文主要是对Python的数据结构进行了一个总结,常见的数据结构包含:列表list.元组tuple.字典dict和集合set. image 索引 左边0开始,右边-1开始 通过index()函数查看索 ...

  7. python pdf报告_利用python设计PDF报告,jinja2,whtmltopdf,matplotlib,pandas

    转自:https://foofish.net/python-crawler-html2pdf.html 工具准备 弄清楚了网站的基本结构后就可以开始准备爬虫所依赖的工具包了.requests.beau ...

  8. python抽奖游戏_利用Python写一个抽奖程序,解密游戏内抽奖的秘密

    原标题:利用Python写一个抽奖程序,解密游戏内抽奖的秘密 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客 ...

  9. python实现图像识别_利用Python进行简单的图像识别(验证码)

    这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt ...

最新文章

  1. 绿色版mysql安装步骤
  2. 【灵动直播提醒】全国大学生智能车竞赛培训(一)——灵动MM32SPIN27介绍
  3. Handler 源码解析(Java 层)
  4. P2761 软件补丁问题
  5. 3-3Tensor和机器学习的关系
  6. java操作集合中 concurrentModifyException 异常的原因分析
  7. Technical Art Director
  8. 互联网架构介绍 --from 光荣之路
  9. Elasticsearch添加拼音搜索支持
  10. 我的遥远的清平湾(插图版)读后感
  11. 无线WiFi漫游的基本原理及搭建
  12. vlookup匹配的文字显示0_VLOOKUP函数用法大全
  13. python删除文本末尾所有空行
  14. html 文本换行 \n 不换行 空格无效
  15. 2个月公众号粉丝破万的心路历程
  16. 368 银河(强连通分量)
  17. 设计一个用于人事管理的“人员”类
  18. Yapi 接口平台(Windows、Linux 在线离线安装部署)
  19. mysql表被锁住/表打不开 Waiting for table metadata lock
  20. 驰骋工作流ccflow的安装讲解

热门文章

  1. jdbc的作用以及它的几个步骤
  2. 技术赋能-混流编排功能,助力京东618直播重保 | 京东云技术团队
  3. 【转载】 塔防设计创新点
  4. 外科耳鼻喉科设备行业调研报告 - 市场现状分析与发展前景预测
  5. eclipse配置php开发环境
  6. 2020年电梯司机免费试题及电梯司机实操考试视频
  7. 8088微处理器主要引线
  8. 《Segmenter》-- 代码笔记
  9. python object has no attribute_Python中出现AttributeError: object has no attribute
  10. Python-UnixTimeStamp