拒绝盗图!教你怎么用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遍历文件夹并删除特定格式文件的示例
Mar 05 Python
Python实现网站文件的全备份和差异备份
Nov 30 Python
在Python中处理字符串之ljust()方法的使用简介
May 19 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
Django 实现图片上传和显示过程详解
Jul 18 Python
Python脚本操作Excel实现批量替换功能
Nov 20 Python
Python的几种主动结束程序方式
Nov 22 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 Python
python 如何执行控制台命令与操作剪切板
May 20 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Python OpenCV 图像平移的实现示例
Python包argparse模块常用方法
Jun 04 #Python
opencv读取视频并保存图像的方法
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 #Python
python opencv旋转图片的使用方法
Python还能这么玩之用Python修改了班花的开机密码
You might like
Terran历史背景
2020/03/14 星际争霸
一个php作的文本留言本的例子(一)
2006/10/09 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
python实现的各种排序算法代码
2013/03/04 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
值得收藏的10道python 面试题
2019/04/15 Python
python扫描线填充算法详解
2020/02/19 Python
python实现按日期归档文件
2021/01/30 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
如何使用PHP session
2015/04/21 面试题
接口可以包含哪些成员
2012/09/30 面试题
优秀的自荐信要注意哪些
2014/01/03 职场文书
协议书怎么写
2014/04/21 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
社区元宵节活动总结
2015/02/06 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
七年级思品教学反思
2016/02/20 职场文书
银行求职信范文
2019/05/13 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书