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判断端口是否打开的实现代码
Feb 10 Python
基于Python实现的扫雷游戏实例代码
Aug 01 Python
详细介绍Python函数中的默认参数
Mar 30 Python
Python中用于检查英文字母大写的isupper()方法
May 19 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
Python标准库shutil用法实例详解
Aug 13 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
利用python numpy+matplotlib绘制股票k线图的方法
Jun 26 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
Python decimal模块使用方法详解
Jun 08 Python
Django日志及中间件模块应用案例
Sep 10 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数组一对一替换实现代码
2012/08/31 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
Yii rules常用规则示例
2016/03/15 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
python定向爬虫校园论坛帖子信息
2018/07/23 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
对python 调用类属性的方法详解
2019/07/02 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
考博专家推荐信
2014/05/10 职场文书
个人向公司借款协议书
2014/10/09 职场文书
建党伟业的观后感
2015/06/01 职场文书
火烧圆明园观后感
2015/06/03 职场文书
追悼词范文大全
2015/06/23 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫