拒绝盗图!教你怎么用python给图片加水印

 更新时间:2021年06月04日 10:50:56   作者:虾米小馄饨  
你是不是担心,辛辛苦苦做的图表被盗用? 试试用python加上你的专属水印,让盗版无所遁形. 只需几行代码,比用ps软件操作更简单、更快捷,需要的朋友可以参考下

方式一:叠加文字水印

最简单的一种方式是,在图片上绘制半透明文本来实现水印效果。

图1 叠加文字水印

主要用到Figure.text函数

参数 类型 说明
x, y float 叠加文本的位置坐标.,取值范围在 [0, 1]。
s str 文本字符串。
fontdict dict 可选 用于覆盖默认文本属性的字典。如果未给出,则默认值由 rcParams[“font.*”]确定。作为kwargs传递的属性,会覆盖fontdict 中给出的相应属性。

叠加文字水印的代码如下

import numpy as np
import matplotlib.pyplot as plt
%matplotlib qt5
# 绘制图表内容
fig, ax = plt.subplots()
ax.plot(np.random.rand(10), '-o', ms=10, lw=2, alpha=0.7)
ax.grid()

# 叠加水印文字,对文字沿轴旋转30°,透明度50%
ax.text(0.5, 0.5, 'created with https://blog.csdn.net/Bit_Coders/', transform=ax.transAxes,
        fontsize=20, color='gray', alpha=0.5,
        ha='center', va='center', rotation='30')

plt.show()

文本属性的相关参数详见:官方文档

方式二:叠加图片水印

图片水印可以叠加你设计好的logo、icon或者二维码图片。

下面以二维码为例,在图表上叠加你的博客二维码水印:

图2 叠加图片水印

图片水印主要用到figimage函数

参数 类型 说明
X 图像数据 数组格式是以下三种之一, MxN:亮度(灰度)值,MxNx3:RGB 值,MxNx4:RGBA 值
xo,yo int 以像素为单位的x/y图像偏移量
alpha None or float 混合透明度
cmap str or matplotlib.colors.Colormap 使用的颜色图,默认值: rcParams[“image.cmap”] (default: ‘viridis')
resize bool 是否缩放figure来匹配给定的图片尺寸

1、生成二维码图片:在命令行用myqr生成对应

myqr https://blog.csdn.net/Bit_Coders

生成的二维码图片会保存到当前路径。

在这里插入图片描述

2、叠加图片水印,代码如下

import numpy as np
from PIL import Image
import matplotlib.image as image
import matplotlib.pyplot as plt
from matplotlib import cm

# 加载水印图片,并缩放到合适大小
resize_w = 100
img = Image.open('J:\Projects\PythonScripts\qrcode.png')
img = img.resize((resize_w,resize_w))

fig, ax = plt.subplots()

# 绘制图表内容
ax.plot(np.random.rand(10), '-o', ms=10, lw=2, alpha=0.7)
ax.grid()

# 确定叠加位置
nx = int(fig.get_figwidth() * fig.dpi)
ny = int(fig.get_figheight() * fig.dpi)
pos_x = nx - resize_w 
pos_y = 10

# 叠加图片水印
fig.figimage(img, pos_x,pos_y, alpha=.5)

plt.show()

到此这篇关于拒绝盗图!教你怎么用python给图片加水印的文章就介绍到这了,更多相关python给图片加水印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python通过递归遍历出集合中所有元素的方法

    Python通过递归遍历出集合中所有元素的方法

    这篇文章主要介绍了Python通过递归遍历出集合中所有元素的方法,实例分析了Python遍历集合元素的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • Python使用Docling库玩转文档处理

    Python使用Docling库玩转文档处理

    Docling 是一个强大的 Python 第三方库,专注于文档处理和转换,所以本文将带大家深入了解 Docling 的强大功能,展示它如何帮助我们高效处理文档,感兴趣的可以了解下
    2025-02-02
  • Python中MySQL数据迁移到MongoDB脚本的方法

    Python中MySQL数据迁移到MongoDB脚本的方法

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。本文给大家介绍Python中MySQL数据迁移到MongoDB脚本的方法,需要的朋友参考下
    2016-04-04
  • numpy.insert()的具体使用方法

    numpy.insert()的具体使用方法

    本文主要介绍了numpy.insert()的具体使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python--模块(Module)和包(Package)详解

    Python--模块(Module)和包(Package)详解

    这篇文章主要介绍了Python中模块(Module)和包(Package)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-09-09
  • python二维图制作的实例代码

    python二维图制作的实例代码

    这篇文章主要给大家介绍了关于python二维图制作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 浅谈Django QuerySet对象(模型.objects)的常用方法

    浅谈Django QuerySet对象(模型.objects)的常用方法

    这篇文章主要介绍了浅谈Django QuerySet对象(模型.objects)的常用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • pyqt5、qtdesigner安装和环境设置教程

    pyqt5、qtdesigner安装和环境设置教程

    这篇文章主要介绍了pyqt5、qtdesigner安装和环境设置方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Python实现批量解压文件夹下所有压缩包

    Python实现批量解压文件夹下所有压缩包

    这篇文章主要为大家详细介绍了如何使用Python实现批量解压文件夹下所有压缩包,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • 利用Python校准本地时间的方法教程

    利用Python校准本地时间的方法教程

    这篇文章主要给大家介绍了关于如何利用Python校准本地时间的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10

最新评论