Python如何为图片添加水印


Posted in Python onNovember 25, 2016

添加水印的主要目的是为了版权保护,使自己的图像不被抄袭或者恶意转载。网上有很多制作水印的工具,本帖介绍怎么使用Python-Pillow库给图片添加水印。

使用ImageMagick添加图片水印-Linux 添加文本水印

在图片右下角添加文字:

from PILimport Image, ImageDraw, ImageFont
 
# 指定要使用的字体和大小;/Library/Fonts/是macOS字体目录;Linux的字体目录是/usr/share/fonts/
font = ImageFont.truetype('/Library/Fonts/Arial.ttf', 24)
 
# image: 图片  text:要添加的文本 font:字体
def add_text_to_image(image, text, font=font):
  rgba_image = image.convert('RGBA')
  text_overlay = Image.new('RGBA', rgba_image.size, (255, 255, 255, 0))
  image_draw = ImageDraw.Draw(text_overlay)
 
  text_size_x, text_size_y = image_draw.textsize(text, font=font)
  # 设置文本文字位置
  print(rgba_image)
  text_xy = (rgba_image.size[0] - text_size_x, rgba_image.size[1] - text_size_y)
  # 设置文本颜色和透明度
  image_draw.text(text_xy, text, font=font, fill=(76, 234, 124, 180))
 
  image_with_text = Image.alpha_composite(rgba_image, text_overlay)
 
  return image_with_text
 
im_before = Image.open("lena.jpg")
im_before.show()
im_after = add_text_to_image(im_before, 'WTF')
im_after.show()
# im.save('im_after.jpg')

Python如何为图片添加水印

添加图片水印

fromPILimportImage, ImageDraw
 
defadd_watermark_to_image(image, watermark):
  rgba_image = image.convert('RGBA')
  rgba_watermark = watermark.convert('RGBA')
 
  image_x, image_y = rgba_image.size
  watermark_x, watermark_y = rgba_watermark.size
 
  # 缩放图片
  scale = 10
  watermark_scale = max(image_x / (scale * watermark_x), image_y / (scale * watermark_y))
  new_size = (int(watermark_x * watermark_scale), int(watermark_y * watermark_scale))
  rgba_watermark = rgba_watermark.resize(new_size, resample=Image.ANTIALIAS)
  # 透明度
  rgba_watermark_mask = rgba_watermark.convert("L").point(lambda x: min(x, 180))
  rgba_watermark.putalpha(rgba_watermark_mask)
 
  watermark_x, watermark_y = rgba_watermark.size
  # 水印位置
  rgba_image.paste(rgba_watermark, (image_x - watermark_x, image_y - watermark_y), rgba_watermark_mask)
 
  return rgba_image
 
im_before = Image.open("lena.jpg")
im_before.show()
 
im_watermark = Image.open("watermark.jpg")
im_after = add_watermark_to_image(im_before, im_watermark)
im_after.show()
# im.save('im_after.jpg')

Python如何为图片添加水印

Python 相关文章推荐
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
Python实现从订阅源下载图片的方法
Mar 11 Python
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 Python
Python自定义线程池实现方法分析
Feb 07 Python
Python装饰器(decorator)定义与用法详解
Feb 09 Python
python字典快速保存于读取的方法
Mar 23 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
Python爬虫学习之翻译小程序
Jul 30 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 Python
Python pass详细介绍及实例代码
Nov 24 #Python
Python脚本实时处理log文件的方法
Nov 21 #Python
深入理解 Python 中的多线程 新手必看
Nov 20 #Python
详解python的数字类型变量与其方法
Nov 20 #Python
python中异常报错处理方法汇总
Nov 20 #Python
详解MySQL数据类型int(M)中M的含义
Nov 20 #Python
python制作websocket服务器实例分享
Nov 20 #Python
You might like
PHP中动态显示签名和ip原理
2007/03/28 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
使用js获取QueryString的方法小结
2010/02/28 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
python爬虫可以爬什么
2020/06/16 Python
html5与css3小应用
2013/04/03 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
安全教育心得体会
2013/12/29 职场文书
经济管理专业自荐信
2013/12/30 职场文书
师范生的个人求职信范文
2014/01/04 职场文书
学校三八妇女节活动情况总结
2014/03/09 职场文书
安全目标责任书
2014/07/22 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android