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 相关文章推荐
一个基于flask的web应用诞生 flask和mysql相连(4)
Apr 11 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 Python
使用python读取.text文件特定行的数据方法
Jan 28 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 Python
python进程的状态、创建及使用方法详解
Dec 06 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
如何在python中处理配置文件代码实例
Sep 27 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 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
最省空间的计数器
2006/10/09 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
使用python实现tcp自动重连
2017/07/02 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
python实现文字版扫雷
2020/04/24 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
python识别验证码的思路及解决方案
2020/09/13 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
美术专业学生个人自我评价
2013/09/19 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
故意伤害辩护词
2015/05/21 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
Win11开始菜单添加休眠选项
2022/04/19 数码科技
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js