zlib解压
一、ZLIB 解压工具简介
Zlib 解压工具是一个广泛使用的压缩和解压缩库,主要用于处理数据的压缩和解压缩任务。Zlib 使用的是 DEFLATE 算法,这是一种通用的压缩算法。它被应用在很多场景中,比如压缩文件、网络传输中的数据压缩、以及各种应用程序中的数据存储和读取。
Zlib 的代码库相对小巧,因此在嵌入式系统和资源受限的环境中也能很好地使用。
想了解更多细节可以自行在网上搜索。
二、演示功能概述
演示如何对数据压缩解压。
三、准备硬件环境
1. Air201 模组一个 2. 点击链接购买:合宙Air201模组淘宝购买链接 3. 此模组的详细使用说明参考:Air201 产品手册
3.2 数据通信线
typec 接口 USB 数据线即可。
3.3 PC 电脑
WIN10以及以上版本的WINDOWS系统。
四、准备软件环境
4.1 基本的下载调试工具
使用说明参考:Luatools 下载和详细使用 ;
五、ZLIB 解压操作软硬件资料
5.1 文档和工具:
- Air201模组使用固件:LuatOS 固件版本下载地址本 demo 使用的固件版本是:LuatOS-SoC_V2002_Air201.soc
- 本教程使用的 demo:https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/miniz
- 将固件和脚本烧录到模块中:Luatools 下载和使用教程 - 合宙模组资料中心
- zlib-api地址
六、代码示例介绍
6.1 解压数据
先将压缩过的字符串进行 base64 解码,然后再解压:
-- 压缩过的字符串, 为了方便演示, 这里用了base64编码
-- 大部分MCU设备的内存都比较小, miniz.compress 通常在服务器端完成,这里就不演示了
-- miniz能解压标准zlib数据流
local b64str = "eAEFQIGNwyAMXOUm+E2+OzjhCCiOjYyhyvbVR7K7IR0l+iau8G82eIW5jXVoPzF5pse/B8FaPXLiWTNxEMsKI+WmIR0l+iayEY2i2V4UbqqPh5bwimyEuY11aD8xeaYHxAquvom6VDFUXqQjG1Fek6efCFfCK0b0LUnQMjiCxhUT05GNL75dFUWCSMcjN3EE5c4Wvq42/36R41fa"
local str = b64str:fromBase64()
local dstr = miniz.uncompress(str)
-- 压缩过的数据长度 156
-- 解压后的数据长度,即原始数据的长度 235
log.info("miniz", "compressed", #str, "uncompressed", #dstr)
七、功能验证
成功解压:
八、总结
本例程介绍了如何压缩和解压数据。
扩展
常见问题
1、解压数据不能超过多少?
解压后的数据不能大于 32k。