方式一:叠加文字水印
最简单的一种方式是,在图片上绘制半透明文本来实现水印效果。
主要用到figure.text函数
参数 | 类型 | 说明 |
x, y | float | 叠加文本的位置坐标.,取值范围在 [0, 1]。 |
s | str | 文本字符串。 |
fontdict | dict 可选 | 用于覆盖默认文本属性的字典。如果未给出,则默认值由 rcparams[“font.*”]确定。作为kwargs传递的属性,会覆盖fontdict 中给出的相应属性。 |
叠加文字水印的代码如下
python" id="highlighter_174421">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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生成对应
1
|
myqr https: / / blog.csdn.net / bit_coders |
生成的二维码图片会保存到当前路径。
2、叠加图片水印,代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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给图片加水印内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/Bit_Coders/article/details/117436341