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

西安免费网站建设广州网络推广策划公司

西安免费网站建设,广州网络推广策划公司,高端网站设计哪个好,跨境电商诈骗集团当前二维码的应用越来越广泛,包括疫情时期的健康码也是应用二维码的典型案例,最近需要通过一张二维码显示较多文本数据,也就是对二维码数据进行压缩,使用CSDN搜索了半天居然没有能简单使用的代码,很多事例代码解决不了…

当前二维码的应用越来越广泛,包括疫情时期的健康码也是应用二维码的典型案例,最近需要通过一张二维码显示较多文本数据,也就是对二维码数据进行压缩,使用CSDN搜索了半天居然没有能简单使用的代码,很多事例代码解决不了字符编码中文乱码等常见问题。因此只能自己研究了。

本文的目标很明确,就是使用python,实现一张二维码显示更多信息,代码简单实用,不乱码支持中文copy就能运行支持txt、doc、wps、docx、xls、xlsx、pdf、gif、jpg、png、mp4、avi、mp3等所有文件格式,压缩、生成、读取二维码一个py文件实现。

以下是程序的代码文件结构,尽量简单易用。
在这里插入图片描述


二维码数据压缩实践 | 使用python对二维码数据进行压缩

  • 一、二维码数据的压缩和写入
    • 1.读取二进制文件数据
    • 2.压缩二进制文件数据
    • 3.使用base64对压缩后的二进制文件数据进行编码
    • 4.将编码后的数据写入二维码
  • 二、读取压缩后的二维码数据
    • 1.识别二维码图片并读取数据
    • 2.使用base64对读取的数据进行解码
    • 3.解压解码后数据
    • 4.还原文件数据
  • 三、完整源代码
    • 1.完整的Python源代码
    • 2.完整的Python源代码下载地址


一、二维码数据的压缩和写入

1.读取二进制文件数据

使用二进制文件,避免了由于字符编码导致的各种问题,很多博客中的事例代码对中文支持很不友好,导致经常出现乱码、截断等问题,所以文本的数据源使用二进制代码尽量避开文字编码问题。下图是待压缩进二维码的一个txt文档,当然还可以是pdf、word、excel等文件。

在这里插入图片描述
代码如下:

# 使用二进制模式读取以_file_path为路径的文件_file = open(_file_path, mode="rb")_contents = _file.read()

2.压缩二进制文件数据

使用zlib.compress()方法对二进制数据进行压缩。

# 对数据进行压缩_contents_zip = zlib.compress(_contents, zlib.Z_BEST_COMPRESSION)

3.使用base64对压缩后的二进制文件数据进行编码

使用base64编码可以避免很多编码转换问题,而且base64编码都是由英文字符组成,非常方便程序员调试和对比前后数据是否一致。

# 转换为_base64格式方便数据传输_contents_base64 = base64.b64encode(_contents_zip)_temp_str_utf8 = _contents_base64.decode('utf-8')print("压缩进二维码的base64编码为:%s" % _temp_str_utf8)

程序运行后结果如下图:
在这里插入图片描述

4.将编码后的数据写入二维码

创建QRCode对象后,可使用.add_data()方法向二维码加入数据,确认数据全部加入后使用.make_image()在内存中生成二维码,最后使用.save()就可以保存二维码图片到电脑指定位置。

# 创建QRCode对象_qr = qrcode.QRCode()# 向二维码添加数据_qr.add_data(_temp_str_utf8, 0)# 生成二维码并保存_image = _qr.make_image()_image.save("compress_qrcode.png")

程序运行后,二维码图片保存位置如下图:
在这里插入图片描述
打开二维码如下:
在这里插入图片描述


二、读取压缩后的二维码数据

1.识别二维码图片并读取数据

使用python的pyzbar库即可实现二维码的识别,如果发现pyzbar识别不了那就需要使用opencv相关库对图片进行处理,提高识别的准确性,这里就不展开研究opencv处理图像的内容了。

# 读取图片对象_image = cv2.imread(_file_path)# 使用pyzbar解析二维码中的数据_qr_data = pyzbar.decode(_image)

2.使用base64对读取的数据进行解码

# 识别二维码并解压缩return_data = read_compress_qrcode("compress_qrcode.png")base64_data = return_data[0].data.decode("utf-8")print("读取并解码后的base64编码为:%s" % base64_data)# 解码base64数据bytes_data = base64.b64decode(base64_data)

程序运行后的识别结果如下图,可以发现前后数据是一致的。
在这里插入图片描述

3.解压解码后数据

使用zlib.decompress()进行解压。

# 解压数据unzip_bytes_data= zlib.decompress(bytes_data)

4.还原文件数据

使用二进制写方式wb打开文件,把数据重新写入并保存。

# 还原压缩文件,使用二进制方式写入文件with open("还原后的文件.txt", 'wb') as f:f.write(unzip_bytes_data)f.close()

程序运行后生成的文件如下图:
在这里插入图片描述
可以看到还原后的文件和压缩前是一致的。
在这里插入图片描述


三、完整源代码

1.完整的Python源代码

以下是完整的python代码,后续继续优化改进。

import zlib
import base64
import qrcode
import cv2
from pyzbar import pyzbardef compress_qrcode(_file_path):"""把二进制文件压缩进二维码的函数:param _file_path: 待压缩进二维码的文件路径:return: 无"""# 使用二进制模式读取以_file_path为路径的文件_file = open(_file_path, mode="rb")_contents = _file.read()# 对数据进行压缩_contents_zip = zlib.compress(_contents, zlib.Z_BEST_COMPRESSION)# 转换为_base64格式方便数据传输_contents_base64 = base64.b64encode(_contents_zip)_temp_str_utf8 = _contents_base64.decode('utf-8')print("压缩进二维码的base64编码为:%s" % _temp_str_utf8)# 创建QRCode对象_qr = qrcode.QRCode()# 向二维码添加数据_qr.add_data(_temp_str_utf8, 0)# 生成二维码并保存_image = _qr.make_image()_image.save("compress_qrcode.png")def read_compress_qrcode(_file_path):# 读取图片对象_image = cv2.imread(_file_path)# 使用pyzbar解析二维码中的数据_qr_data = pyzbar.decode(_image)# 返回读取的数据return _qr_dataif __name__ == '__main__':# 压缩并生成二维码compress_qrcode("待压缩进二维码的文件.txt")# 识别二维码并解压缩return_data = read_compress_qrcode("compress_qrcode.png")base64_data = return_data[0].data.decode("utf-8")print("读取并解码后的base64编码为:%s" % base64_data)# 解码base64数据bytes_data = base64.b64decode(base64_data)# 解压数据unzip_bytes_data= zlib.decompress(bytes_data)# 还原压缩文件,使用二进制方式写入文件with open("还原后的文件.txt", 'wb') as f:f.write(unzip_bytes_data)f.close()

2.完整的Python源代码下载地址

下载地址:
二维码数据压缩源码|https://download.csdn.net/download/qq616491978/87450899


http://www.tj-hxxt.cn/news/62526.html

相关文章:

  • 焦作 做 网站网络广告策划书案例
  • 装修公司加盟品牌排行榜seo排名软件怎么做
  • 光明乳业网站建设情况分析怎么自己开网站
  • wordpress页脚计时百度seo推广是什么
  • 在线做图的网站sem推广托管公司
  • 女和男做的视频网站英语培训机构
  • 开发企业网站设计搜索引擎平台排名
  • 织梦做网站建立数据库品牌广告语经典100条
  • 关于推进政府网站集约化建设的通知推广网站公司
  • 深圳网站建设smawtoseo网站推广招聘
  • 杏坛网站建设运营主要做什么工作
  • 禅城建网站引流推广网站
  • 网站设计做哪些准备百度答主中心入口
  • 汽车商城网站建设国际新闻最新消息今天军事新闻
  • 东莞专业做网站公司seo基础知识培训
  • 网站常规seo优化步骤什么是搜索引擎营销?
  • 构建大型网站cpa游戏推广联盟
  • 重庆专业微信网站制作海外网络推广平台
  • pc网站怎么做适配营销型网站制作企业
  • 空气炸锅做糕点的网站如何自己创造一个网站平台
  • 网站开发一个多少钱啊网络营销策略方案
  • 湖南网站设计公司网络营销整合推广
  • 自媒体人专用网站google推广工具
  • 企业做自己的网站要注意什么全球搜钻是什么公司
  • 网站建设价格标准关键词优化搜索引擎
  • 苏州关键词网站排名电商运营工作内容
  • 做网站记者好吗建站abc网站
  • 太原做微网站的公司百度收录域名
  • 深圳网站专业制作株洲seo优化报价
  • 做淘宝客没网站怎么做关键词歌曲歌词