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变量和字符串详解
Apr 29 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
不可错过的十本Python好书
Jul 06 Python
微信跳一跳python代码实现
Jan 05 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
python切片的步进、添加、连接简单操作示例
Jul 11 Python
pycharm新建Vue项目的方法步骤(图文)
Mar 04 Python
使用OpenCV实现道路车辆计数的使用方法
Jul 15 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 Python
Python实现单例模式的5种方法
Jun 15 Python
python字典进行运算原理及实例分享
Aug 02 Python
python_tkinter弹出对话框创建
Mar 20 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设计模式 Command(命令模式)
2011/06/26 PHP
php网上商城购物车设计代码分享
2012/02/15 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
推荐20家国外的脚本下载网站
2011/04/28 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
对比分析json及XML
2014/11/28 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
virtualenv实现多个版本Python共存
2017/08/21 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
postman和python mock测试过程图解
2020/02/22 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
建筑工程技术应届生自荐信
2013/09/27 职场文书
教育专业个人求职信
2013/12/02 职场文书
小学美术教学反思
2014/02/01 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
Nginx报404错误的详细解决方法
2022/07/23 Servers