Air780E软件指南:zlib解压示例
Zlib解压工具是一个广泛使用的压缩和解压缩库,主要用于处理数据的压缩和解压缩任务。Zlib使用的是DEFLATE算法,这是一种通用的压缩算法。它被应用在很多场景中,比如压缩文件、网络传输中的数据压缩、以及各种应用程序中的数据存储和读取。
Zlib的代码库相对小巧,因此在嵌入式系统和资源受限的环境中也能很好地使用。
二、演示功能概述
本文主要演示如何对数据压缩解压。
三、准备硬件环境

此核心板的详细使用说明参考:
https://docs.openluat.com/air780e/product/
Air780E产品手册中的<<开发板Core_Air780E使用说明V1.0.5.pdf>>;核心板使用过程中遇到任何问题,可以直接参考这份使用说明pdf文档。
3.1 数据通信线
3.2 PC电脑
四、准备软件环境
4.1 基本的下载调试工具
使用说明参考:
Luatools 工具使用说明:
https://docs.openluat.com/Luatools/
五、ZLIB解压操作软硬件资料
5.1 文档和工具:
最新版本下载链接:
https://docs.openluat.com/air780e/luatos/app/utils/zlib/
780E模块使用固件:SDK&Demo-合宙文档中心,本demo使用的固件版本是: LuatOS-SoC_V1112_EC618_FULL.soc 本教程使用的demo: https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/miniz 将固件和脚本烧录到模块中;
源码和固件已打包;
zlib-全部api地址,如果只看本demo的api直接看下面的5.2demo使用api介绍即可。
5.2 demo使用api介绍
使用常量
|
常量 |
类型 |
解释 |
|
miniz.WRITE_ZLIB_HEADER |
int |
压缩参数,是否写入zlib头部数据,compress函数的默认值 |
|
miniz.COMPUTE_ADLER32 |
int |
压缩/解压参数,是否计算/校验adler-32 |
|
miniz.GREEDY_PARSING_FLAG |
int |
压缩参数,是否快速greedy处理,默认使用较慢的处理模式 |
|
miniz.NONDETERMINISTIC_PARSING_FLAG |
int |
压缩参数,是否快速初始化压缩器 |
|
miniz.RLE_MATCHES |
int |
压缩参数,仅扫描RLE |
|
miniz.FILTER_MATCHES |
int |
压缩参数,过滤少于5次的字符 |
|
miniz.FORCE_ALL_STATIC_BLOCKS |
int |
压缩参数,是否禁用优化过的Huffman表 |
|
miniz.FORCE_ALL_RAW_BLOCKS |
int |
压缩参数,是否只要raw块 |
|
miniz.PARSE_ZLIB_HEADER |
int |
解压参数,是否处理zlib头部,uncompress函数的默认值 |
|
miniz.HAS_MORE_INPUT |
int |
解压参数,是否还有更多数据,仅流式解压可用,暂不支持 |
|
miniz.USING_NON_WRAPPING_OUTPUT_BUF |
int |
解压参数,解压区间是否够全部数据,仅流式解压可用,暂不支持 |
miniz.compress(data,flags)
作用:快速压缩,需要165KB的系统内存和32KB的LuaVM内存
参数
|
参数 |
传入值类型 |
解释 |
|
data |
string |
待压缩的数据,少于400字节的数据不建议压缩,且压缩后的数据不能大于32KB |
|
flags |
flags |
压缩参数,默认是miniz.WRITE_ZLIB_HEADER,即写入zlib头部 |
返回值
|
返回值类型 |
解释 |
|
string |
若压缩成功,返回数据字符串,否则返回nil |
string.fromBase64(str)
作用:将字符串进行base64解码
参数
|
参数 |
传入值类型 |
解释 |
|
str |
string |
需要转换的字符串 |
返回值
| 返回值类型 | 解释 |
|
string |
解码后的字符串,若解码失败则返回空字符串 |
miniz.uncompress(data,flags)
作用:快速解压,需要32KB的LuaVM内存
参数
|
参数 |
传入值类型 |
解释 |
|
data |
string |
待解压的数据,解压后的数据不能大于32KB |
|
flags |
flags |
解压参数,默认是miniz.PARSE_ZLIB_HEADER,即解析zlib头部 |
返回值
| 返回值类型 | 解释 |
|
string |
若解压成功,返回数据字符串,否则返回nil |
六、代码示例介绍
6.1 解压数据
先将压缩过的字符串进行base64解码,然后再解压:

压缩数据然后解压:

七、功能验证
成功解压:

八、总结
本例程介绍了如何压缩和解压数据。
九、常见问题
9.1 解压数据不能超过多少?
解压后的数据不能大于32k。
Air780E软件指南:zlib解压示例的更多相关文章
- 【VC++技术杂谈008】使用zlib解压zip压缩文件
最近因为项目的需要,要对zip压缩文件进行批量解压.在网上查阅了相关的资料后,最终使用zlib开源库实现了该功能.本文将对zlib开源库进行简单介绍,并给出一个使用zlib开源库对zip压缩文件进行解 ...
- zlib压缩解压示例
#include <stdio.h> #include <string.h> #include <assert.h> #include "zlib.h&q ...
- linux之安装软件,压缩解压文件
- [zlib]_[0基础]_[使用Zlib完整解压zip内容]
场景: 1. 解压文件一般用在下载了一个zip文件之后解压,或者分析某个文件须要解压的操作上. 2. 解压文件,特别是解压带目录的zip文件往往系统没有提供这类Win32 API,当然C#自带库能解压 ...
- Bandizip解压压缩软件
上次重装系统以后,特别注意安装软件,在这里提一些比较好的 解压软件:Bandizip 这个是一个免费轻量级的软件,压缩解压速度快,没什么广告,推荐大家在官方下载 Bandizip下载网址 点击下载安装 ...
- MAC实用操作记录---使用命令执行文件上传下载解压打包与解包
1.使用命令执行文件上传下载 https://www.cnblogs.com/sugartang/p/12743470.html 2.提示:打不开xx软件,在 OS X 安装软件打不开提示" ...
- SAPCAR 压缩解压软件的使用方法
SAPCAR 是 SAP 公司使用的压缩解压软件,从 SAP 网站下载的补丁包和小型软件基本都是扩展名为 car 或 sar 的,它们都可以用 SAPCAR 来解压.下面是它的使用说明: 用法: 创建 ...
- python用模块zlib压缩与解压字符串和文件的方法
摘自:http://www.jb51.net/article/100218.htm Python标准模块中,有多个模块用于数据的压缩与解压缩,如zipfile,gzip, bz2等等. python中 ...
- linux的软件管理的rpm包和yum配置加tar解压包和安装编译./configuer
软件管理 rpm包 和yum 1.软件形式 Linux系统的第三方软件,无论是应用软件还是工具软件,大多以以下两种形式之一发行: 源代码形式 预编译形式 获取的源代码形式的软件,需要对其 ...
- 利用zlib库进行zip解压
1:到zlib官网上下载zlib,本文下载的是1.2.8的版本. 2:进行./configure,然后make. 3:进入zlib库中的contrib/minizip/路径下make,生成的miniz ...
随机推荐
- 兼容ios11的正则匹配
ios11不支持正则零宽断言,以字符串 $哈哈哈(sh039488)$ 为例: 不兼容写法:/\$(?<=\$).*?(?=\)\$)\)\$/g 兼容写法:/\$(.*?)\)\$/g
- Linux 文件系统层次结构(FHS)解释
详细的目录解释可以使用 man file-hierarchy 和 man hier 命令查看. 常见目录: 目录 描述 /bin binaries.在单用户模式下需要用到的基本命令的二进制文件,包括启 ...
- docker stop 容器,连接被拒绝
docker stop 容器ID 报错,无法kill,连接被拒绝 经过网上查找以及实际情况,发现原因为: 服务器重启时,正在运行的docker内的容器正在进行处理, 因为docker没有提前关闭,导致 ...
- SQL Server – Work with JSON
前言 JSON 是一个很好的格式, array, object 就能表达一个表格了. 如果想保存一些结构格式, 又不想用表格这么大费周章的话, JSON 会是很好选择. 比如我用它来记入 Audit ...
- 一款基于Uniapp开发的开源低代码平台
rtvue-lowcode低代码开发平台 rtvue-lowcode一款基于uniapp框架和uview组件库的低代码开发平台,项目提供可视化拖拽编辑器,采用MIT开源协议,适用于app.小程序等项目 ...
- eBPF 概述:第 3 部分:软件开发生态
1. 前言 在本系列的第 1 部分和第 2 部分中,我们对 eBPF 虚拟机进行了简洁的深入研究.阅读上述部分并不是理解第 3 部分的必修课,尽管很好地掌握了低级别的基础知识确实有助于更好地理解高级别 ...
- 嘟嘟牛在线登陆加密分析-RPC调用
加密参数 JADX反编译后搜索代码 user/login 基本可以确定就是从这里发起网络请求 跟进 addRequestMap 方法分析 这一看逻辑就清晰了 先添加一个时间戳,在对sign进行加密后在 ...
- TX御加固脱壳
示例APP某小说 其实脱这个有好几个方法,我使用了两个方法都可以脱掉. 首先使用Y佬的APK测试: 上传文件后经过等待提示任务成功,把给的ZIP包下载下来. 解压后得到两个文件,txt文件是脱壳后的a ...
- 关于 apt 的一些命令
apt update 用于 更新 包索引,包列表 apt install -y open-vm-tools-desktop fuse 安装 vm-tools 工具
- 011 Python 的打印(花式变色打印)和注释(为什么加个#号就能注释)
#!/usr/bin/env python # -*- coding:utf-8 -*- # Datatime:2022/7/18 21:29 # Filename:011 Python 的打印和注释 ...