您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

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

51自学网 2021-10-30 22:31:13
  python
这篇教程拒绝盗图!教你怎么用python给图片加水印写得很实用,希望能帮到您。

方式一:叠加文字水印

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

图1 叠加文字水印

主要用到Figure.text函数

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

叠加文字水印的代码如下

import numpy as npimport 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 npfrom PIL import Imageimport matplotlib.image as imageimport matplotlib.pyplot as pltfrom matplotlib import cm# 加载水印图片,并缩放到合适大小resize_w = 100img = 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给图片加水印内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python四个坐标点对图片区域最小外接矩形进行裁剪
Python还能这么玩之只用30行代码从excel提取个人值班表
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。