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

主要用到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或者二维码图片。
下面以二维码为例,在图表上叠加你的博客二维码水印:

图片水印主要用到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()
			
	声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
		
评论(0)