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


Posted in Python onJune 04, 2021

方式一:叠加文字水印

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

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

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

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

拒绝盗图!教你怎么用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生成对应

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

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

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

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网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
Jun 09 Python
浅谈python可视化包Bokeh
Feb 07 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
Python DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 Python
Python捕获异常堆栈信息的几种方法(小结)
May 18 Python
浅析Python 条件控制语句
Jul 15 Python
详解Django的MVT设计模式
Apr 29 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Python OpenCV 图像平移的实现示例
Python包argparse模块常用方法
Jun 04 #Python
opencv读取视频并保存图像的方法
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 #Python
python opencv旋转图片的使用方法
Python还能这么玩之用Python修改了班花的开机密码
You might like
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
Python生成pdf文件的方法
2014/08/04 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
django迁移数据库错误问题解决
2019/07/29 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
django实现模型字段动态choice的操作
2020/04/01 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
用python批量移动文件
2021/01/14 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
华为慧通面试题
2012/09/11 面试题
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
应届生会计求职信
2013/11/11 职场文书
文言文形式的学生求职信
2013/12/03 职场文书
大学军训感言1500字
2014/03/09 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js