拒绝盗图!教你怎么用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实现windows下模拟按键和鼠标点击的方法
Mar 13 Python
对Python3 序列解包详解
Feb 16 Python
简单了解Python生成器是什么
Jul 02 Python
Django框架基础模板标签与filter使用方法详解
Jul 23 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
pytorch自定义二值化网络层方式
Jan 07 Python
Python telnet登陆功能实现代码
Apr 16 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
Python 串口通信的实现
Sep 29 Python
基于Python实现天天酷跑功能
Jan 06 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
Apr 27 Python
FP-growth算法发现频繁项集——构建FP树
Jun 24 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Python OpenCV 图像平移的实现示例
Python包argparse模块常用方法
Jun 04 #Python
opencv读取视频并保存图像的方法
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 #Python
python opencv旋转图片的使用方法
Python还能这么玩之用Python修改了班花的开机密码
You might like
PHP 和 MySQL 基础教程(二)
2006/10/09 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
php使用websocket示例详解
2014/03/12 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
php检查页面是否被百度收录
2015/10/28 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
财务部岗位职责范本
2015/04/14 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书