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 相关文章推荐
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 Python
详解Python中DOM方法的动态性
Apr 11 Python
python各种语言间时间的转化实现代码
Mar 23 Python
详解Python中for循环是如何工作的
Jun 30 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
Python实现简单求解给定整数的质因数算法示例
Mar 25 Python
python 列表删除所有指定元素的方法
Apr 19 Python
PyCharm设置每行最大长度限制的方法
Jan 16 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
Python PyQt5模块实现窗口GUI界面代码实例
May 12 Python
浅析Python 多行匹配模式
Jul 24 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
解析dedeCMS验证码的实现代码
2013/06/07 PHP
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
JavaScript原型链示例分享
2014/01/26 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
python实现异步回调机制代码分享
2014/01/10 Python
Python学习小技巧总结
2018/06/10 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
幼儿师范毕业生自荐信
2013/11/09 职场文书
军训感想500字
2014/02/20 职场文书
毕业生求职信
2014/06/10 职场文书
死亡赔偿协议书
2015/01/28 职场文书
怎样写家长意见
2015/06/04 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python