该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

对于这个对LZW压缩算法的实现 可以编译成静态库什么的来使用,下面是用它来压缩解压文件的例子:

#include

#include

#include

#include

LZWBOOL LZWBACKCALL LZW_PROC(LZWDWORD size,void *buffer,void *orgs)

{

if(fwrite(buffer,1,size,(FILE*)orgs) == 0)

return FALSE;

return TRUE;

}

//压缩文件

/*

int __cdecl main(int argc,char **argv)

{

FILE *i;

FILE *o;

LZWCOMPRESSER *pcompresser;

unsigned char arr[4096];

unsigned char arr2[4096];

size_t size;

pcompresser = (LZWCOMPRESSER*)malloc(sizeof(LZWCOMPRESSER));

i = fopen("C:\\Users\\XXXX\\Desktop\\a.bmp","rb");

o = fopen("C:\\Users\\XXXX\\Desktop\\a.lzw","wb");

if(i == NULL || o == NULL)

printf("error!\n");

LZWCompresser_Begin(pcompresser,2048,arr2,LZW_PROC,o);

printf("compressing ... \n");

while((size = fread(arr,1,4096,i)) > 0)

{

switch(LZWCompresser_Run(pcompresser,size,arr))

{

case LZWCOMPRESSER_OUTPUTERROR:

printf("Output Error!\n");

break;

case LZWCOMPRESSER_BUG:

printf("Bug!\n");

break;

default:;

}

}

LZWCompresser_End(pcompresser);

printf("end! \n");

fclose(i);

fflush(o);

fclose(o);

system("pause");

free(pcompresser);

return 0;

}

*/

//解压文件

int __cdecl main(int argc,char **argv)

{

FILE *i;

FILE *o;

LZWDECODER *pdecoder;

unsigned char arr[4096];

unsigned char arr2[4096];

size_t size;

pdecoder = (LZWDECODER*)malloc(sizeof(LZWDECODER));

i = fopen("C:\\Users\\XXXX\\Desktop\\a.lzw","rb");

o = fopen("C:\\Users\\XXXX\\Desktop\\b.bmp","wb");

if(i == NULL || o == NULL)

printf("error!\n");

LZWDecoder_Init(pdecoder,4096,arr2,LZW_PROC,o);

printf("decodeing ... \n");

while((size = fread(arr,1,4096,i)) > 0)

{

switch(LZWDecoder_Decode(pdecoder,size,arr))

{

case LZWDECODER_END:

printf("decode end! \n");

break;

case LZWDECODER_BUG:

printf("bug!\n");

break;

case LZWDECODER_OUTPUTERROR:

printf("writing error!\n");

break;

case LZWDECODER_CODEERROR:

printf("code error!\n");

break;

case LZWDECODER_DECODING:

continue;

}

break;

}

fclose(i);

fflush(o);

fclose(o);

system("pause");

free(pdecoder);

return 0;

}

本人比较懒 所以就写这样了

lzw编码c语言,LZW字典压缩算法的实现相关推荐

  1. lz78算法c语言,LZW数据压缩算法研究

    内容介绍 LZW数据压缩算法研究 46页 3.2万字 摘 要 随着信息化技术的蓬勃发展,日常需要处理或者传输的数据越来越多,数据的压缩也就变得越来越重要了.我们迫切的需要有好的压缩算法来支持我们的数据 ...

  2. C语言实现LZW编码

    LZW编码 算法思想 首先我们有一个0到255的ASCII码表,然后得到若干字符串对其进行编码,再对编码后的码流进行解码以验证. 编码: 初始化:前缀P为空,第一个字符进入后缀C 判断:P+C(P为a ...

  3. LZW编码与解码的那点事

    1. 前言 在前面一片文章TIFF文件结构详解里,我们在解析TIF文件中,提到使用了LZW算法.那么LZW算法是什么呢?就让我们揭开它的神秘面纱. 2. 什么是LZW LZW算法又叫"串表压 ...

  4. Python实现英文文本的LZW编码压缩

    LZW编码采用隐字典码的形式完成压缩. 文本中符号并不是独立存在的,前一个符号对后一个符号的出现有着很大影响. LZW算法利用文本开头部分的特征,作为整个文本的特征,即利用文本开头部分的内容,生成固定 ...

  5. LZW编码的学习与实现

    大家好,现在是2020年5月19日,不知不觉5年过去了,看到最近还有很多人评论我的这篇文章,非常的开心和满足,显然我写这篇文章所做的微小贡献帮助到了一些人.今天我从头到尾再看了一遍我写的东西,还是有一 ...

  6. MATLAB实现LZW编码与解码

    clear all clc str = input('请输入一串字符:','s'); disp("编码开始..."); %% 编码 N = length(str); % 获得输入字 ...

  7. 为什么倒排索引不采用zlib这样的字典压缩算法——因为没法直接使用啊

    看了下压缩算法的发展历史,根据倒排索引的数据结构特点,个人认为zstd不适合做倒排索引压缩,举例说明下: 假设有一份文档倒排列表为:[300, 302, 303, 332],对于这组倒排数据,是没法* ...

  8. c语言怎么表示小写字母a到z,C++_C语言字符串快速压缩算法代码,通过键盘输入一串小写字母(a~z - phpStudy...

    C语言字符串快速压缩算法代码 通过键盘输入一串小写字母(a~z)组成的字符串. 请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串. 压缩规则: 1.仅压缩连续重复出 ...

  9. C语言字母的压缩,C语言字符串快速压缩算法代码

    C语言字符串快速压缩算法代码 大家知道C语言字符串快速压缩算法是怎么样的吗?下面小编为大家整理了C语言字符串快速压缩算法代码,希望能帮到大家! 通过键盘输入一串小写字母(a~z)组成的字符串. 请编写 ...

  10. [转载] python json 编码(dump/dumps:字典转化为json)、解码(load/loads:json转化为字典)

    参考链接: Python-Json 2 : 使用json.load/loads读取JSON文件/字符串 python json 编码(dump/dumps:字典转化为json).解码(load/loa ...

最新文章

  1. 硬改TP-Link WR841N v8刷breed和OpenWrt
  2. Jan 09 - Number of 1 Bits; Bit Operation;
  3. npm教程:使用nrm切换镜像源
  4. C#基础加强(7)之ref与out
  5. c++ 提取傅里叶描述子_非谐声子模拟方法(Normal Mode Decomposition)
  6. relu函数_ECCV 2020,在视觉任务上大幅超越ReLU的新型激活函数
  7. 使用kubeadm安装k8s集群故障处理三则
  8. 慢性病管理系统/案列/APP/小程序/网站
  9. Re-parameterizing Your Optimizers rather than Architectures
  10. 2-1 Socket家族的基石
  11. L1-087 机工士姆斯塔迪奥-PAT 团体程序设计天梯赛 GPLT
  12. 转载 - Linux使用技巧锦集
  13. teredo报文格式
  14. 导数,偏导数,方向导数,梯度的理解---微积分数学基础
  15. doris ODBC 连接 mysql 外部表
  16. 网络世界有哪些不为人知的秘密?
  17. php如何做7天后自动售货店,PHP自动售货发卡网源码集成多种支付接口
  18. Pygame 教程(2):重要的概念及对象
  19. 超强大的dnsmasq及hosts全自动脚本扶墙去广告详细教程
  20. 计算机与汽车的论文,汽车计算机网络技术论文

热门文章

  1. hadoop 查看文件大小以及文件数
  2. android编译系统分析一:source build/envsetup.sh与lunch
  3. 写了一个微信发红包的代码
  4. 超级表格企业版收费即将进行政策调整
  5. Ardunio开发实例-TEMT6000环境光传感器
  6. 如何用串口助手测试软件485通讯功能,串口调试助手如何检测RS485端口好坏及信号发送的好坏?...
  7. 关于微信数据库文件夹与资源文件夹名称的问题
  8. Fragment already added 错误
  9. Git Git用户ssh公钥管理
  10. 在线二维码生成工具html源码