当前位置: 首页 > news >正文

本网站正在建设升级中宁波网站推广

本网站正在建设升级中,宁波网站推广,党建网站织梦模板,高性能wordpress0 说明 二维码不止一种,本文介绍最常见的QR二维码。由于不能发二维码截图,所以所有的执行结果都隐去了。完整版本可以移步到此查看:https://vblogs.cn/momo1938/article?id0407576070659864 1 安装包 python 可以使用qrcode来生成二维码&…

0 说明

二维码不止一种,本文介绍最常见的QR二维码。由于不能发二维码截图,所以所有的执行结果都隐去了。完整版本可以移步到此查看:https://vblogs.cn/momo1938/article?id=0407576070659864

1 安装包

python 可以使用qrcode来生成二维码,python 安装时多半以内置了这个包,没有的话可以先安装以下这个包:

pip install qrcode

2 生成二维码

2.1 简单示例

简单示例,生成包含csdn地址的二维码:

import qrcode#添加二维码信息
img = qrcode.make('https://baidu.com')#保存二维码图片
img.save('01.png')

生成的图片示例,扫描即可打开百度

2.2 二维码的主要参数

2.2.1 Version:版本,取值范围1-40。

版本1大小为21X21矩阵,版本40大小177x177矩阵。版本越大,容纳的信息量越大,版本1容纳的字符数约十几个,版本40理论上可容纳7000多个字符,大约1800个汉字。

import qrcode
img = qrcode.make('https://baidu.com',version=40)
img.save('02.png')

版本为1和40二维码对比:

2.2.2 error_correction 二维码纠错

此参数控制用于二维码的纠错。有四个级别,如下所示:

ERROR_CORRECT_L: 7%

ERROR_CORRECT_M:15%

ERROR_CORRECT_Q:25%

ERROR_CORRECT_H:30%

什么是纠错? 即使编码变脏或破损,也可自动恢复数据。上面的四个级别表示当二维码的损毁部分不大于这个百分比时,二维码依旧可以被正确识别:

示例,加入纠错:

import qrcodeimg = qrcode.make('https://csdn.net',version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,
)
img.save('03.png')

然后将生成的二维码擦出掉右下角一部分,依旧可以被识别。

2.2.3 box_size 控制框内像素数

此参数在版本号相同的情况下,像素数越高,二维码尺寸越大,但二维码尺寸并不完全由此参数决定。

img = qrcode.make('https://baidu.com',version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=15)
img.save('04.png')

在版本号相同的情况下,box_size = 15 和 50的对比:

2.2.4 border:控制边框的粗细。默认边框为 4 像素。

此处的边框指的的外围空白区域。

import qrcode
img = qrcode.make('https://baidu.com',version=1,box_size=15,border=8
)
img.save('05.png')

边框为2 和 边框为8 的对比:

2.2.5 顺便说一下二维码的尺寸

二维码的尺寸与这几个参数有关:version ,border ,box_size,具体计算公式如下:
qr_size = (21 + (version - 1) * 4 + border * 2) * box_size

2.2.6 其它说明

二维码生成时容错级别当然是越高越好,但容错级别越高,所能容纳的数据量就小,也会增大二维码的尺寸。这个需要自己根据情况取舍。

2.2 生成彩色二维码

import qrcodeqr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=10,border=4,
)qr.add_data('https://baidu.com')
#填充色和背景色
img = qr.make_image(fill_color='palegreen',back_color='lightgoldenrodyellow')
img.save('color.png')

其中的填充色和背景色必须时web支持的颜色值。否则会报错,生成的二维码:

web颜色值是W3C定义的颜色标准,一共140种,感兴趣可自行搜索了解,这里不再一一列举。

2.3 其它二维码

由于需要借助其它的库,这里不再详细解释,给出示例和注释,需要时可直接拷贝代码。

2.3.1 带背景图片的二维码

使用myqr库pip install myqr

from MyQR import myqrmyqr.run(words="https://baidu.com/",version=1,picture="bg.jpg",colorized=True,save_name="bg.png",
)

生成结果:

也可将背景图替换为gif.生成动态二维码。

2.3.2 生成内置logo的二维码

# coding: utf-8import qrcode
from PIL import Image # 依赖的库是pillow,常用的图片处理库qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=10,border=4,
)qr.add_data('https://badiu.com')
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img = img.convert("RGBA")#logo
logo = Image.open("logo.png")# 获取二维码的尺寸
img_w, img_h = img.sizescale = 6
size_w = int(img_w / scale)
size_h = int(img_h / scale)logo_w, logo_h = logo.size
if logo_w > size_w:logo_w = size_w
if logo_h > size_h:logo_h = size_h
# 设置logo的尺寸和位置
logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS)
w = int((img_w - logo_w) / 2)
h = int((img_h - logo_h) / 2)
img.paste(logo, (w, h), logo)
img.save('11.png')

生成结果:

3 读取或识别二维码

使用opencv 库来识别二维码:

pip install opencv-python

读取示例:

import cv2qr_file = "01.png"
qr_image = cv2.imread(qr_file)
qr_detector = cv2.QRCodeDetector()
data, bbox, straight_qrcode = qr_detector.detectAndDecode(qr_image)print(data)

控制台输出:

$ python 06-4.py                                                       
https://baidu.com
http://www.zhongyajixie.com/news/62989.html

相关文章:

  • 支付宝可以给第三方网站做担保么网站seo博客
  • 哪些软件可以做网站公司网站模版
  • wordpress mysql数据库网站推广优化平台
  • 学做网站多少钱免费建自己的网站
  • 在百度上做公司做网站网域名查询地址
  • 凯里信息网站免费网站可以下载
  • 火车头web在线发布到网站企业宣传片文案
  • 织梦多语言网站域名买卖交易平台
  • 企业网站建设 哪个公司做得好网络营销公司怎么注册
  • 济宁城乡建设局网站公司的seo是什么意思
  • 旅游门户网站模板下载青岛关键词推广seo
  • 新产品推广方案策划在哪里可以免费自学seo课程
  • 自己建网站花钱吗系统优化软件排行榜
  • 企业宣传册版式设计广州seo和网络推广
  • 帮忙做网站百度官网登录
  • 网络科技公司注册怎么快速优化关键词排名
  • 可以做自己的单机网站免费推客推广平台
  • 雷州网站2022年度最火关键词
  • 织梦做企业网站湖州网站seo
  • 设计师自己的网站seo编辑的工作内容
  • 数据网站德州seo整站优化
  • 档案馆建设网站今日发生的重大国际新闻
  • 做外包的网站有哪些问题石家庄网站优化
  • 东莞市外贸网站建设公司石家庄网站建设
  • 不通过第三方平台做微网站seo网络推广经理招聘
  • 域名对网站seo的影响吗链接交易网
  • 网站按钮psd网站seo优化方法
  • 网站开发的主要技术难点和重点上海百度seo点击软件
  • 太原seo优化搜索引擎优化的流程是什么
  • web网站开发与实现seo网页优化服务