脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 拒绝盗图!教你怎么用python给图片加水印

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

2021-11-23 11:23虾米小馄饨 Python

你是不是担心,辛辛苦苦做的图表被盗用? 试试用python加上你的专属水印,让盗版无所遁形. 只需几行代码,比用ps软件操作更简单、更快捷,需要的朋友可以参考下

方式一:叠加文字水印

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

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

主要用到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或者二维码图片。

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

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

图片水印主要用到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

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

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

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

延伸 · 阅读

精彩推荐