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 crontab设置linux定时任务
Dec 08 Python
python模拟事件触发机制详解
Jan 19 Python
TensorFlow实现创建分类器
Feb 06 Python
用Python3创建httpServer的简单方法
Jun 04 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
python中的&&及||的实现示例
Aug 07 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
Django中使用Celery的方法步骤
Dec 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缓存设计实现代码
2011/09/30 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python简单进程锁代码实例
2015/04/27 Python
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
python随机取list中的元素方法
2018/04/08 Python
python实现录音小程序
2020/10/26 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
Python函数基本使用原理详解
2020/03/19 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
八荣八耻的活动方案
2014/08/16 职场文书
二审答辩状范文
2015/05/22 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
学习雷锋主题班会
2015/08/14 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
导游词之张家口
2019/12/13 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
教你怎么用Python操作MySql数据库
2021/05/31 Python