我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 〔C〕求助。关于用哈夫曼编码压缩BMP文件的问题 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

wuxjim_sec



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 298
威望: 0
浮云: 1276
在线等级:
注册时间: 2006-11-17
最后登陆: 2008-06-29

5come5帮你背单词 [ unfortunate /Λn'fo:tənit/ a. 难忘的,不会忘记的 ]


〔C〕求助。关于用哈夫曼编码压缩BMP文件的问题

写了个用哈夫曼编码压缩文件的程序,对文本文件都没问题,但是在压缩BMP图像文件时,还原后的文件里多了些字节,用ultra_edit看二进制文件发现在文件快结束的时候,莫名其妙的多了些字节出来。然后检查程序,发现输入到还原文件的数据都是对的。郁闷,实在 想不通为什么会这样。源程序写的比较乱,自己的不怎么看得懂了,所以 就不发上来了,要的说一声。希望达人帮解下。。。。
第一个图是二进制比较,出错就是从那里开始的,在9B和0A之间多了个0D出来。下面是我打印出来的在那个地址用fputc输入文件的值。可以看出写入的时候都是对的,但是打开文件比较却有错!
顶端 Posted: 2007-04-29 08:37 | [楼 主]
est





性别: 帅哥 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 6578
威望: 3
浮云: 431
在线等级:
注册时间: 2006-10-14
最后登陆: 2018-07-05

5come5帮你背单词 [ convert /kən'və:t, 'konvə:t/ vt. 使转变,更改;n. 改变信仰者 ]


要以二进制方式写入一个文件,我记得好像是 fopen('1.bmp','wb+')

w表示 write写入

b表示binary,二进制。

记得因该这样才对。
顶端 Posted: 2007-04-29 18:08 | [1 楼]
wuxjim_sec



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 298
威望: 0
浮云: 1276
在线等级:
注册时间: 2006-11-17
最后登陆: 2008-06-29

5come5帮你背单词 [ photocell /'foutəsel/ n. 光电池,光电管 ]


先谢楼上的回复
我是用的“wb”打开的文件,而“wb+”相较于“wb”应该是前者除了写还可以读,后者只能写。但是我始终都只是在写文件,所以用“wb”应该没有问题。
顶端 Posted: 2007-04-29 18:28 | [2 楼]
老子不怕您



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 623
威望: 0
浮云: 1333
在线等级:
注册时间: 2004-09-09
最后登陆: 2008-03-08

5come5帮你背单词 [ leaf /li:f/ n. 叶(子),张,页,薄金属片 ]


那楼主还原后的bmp和压缩前的bmp是否一样呢?
顶端 Posted: 2007-05-02 18:26 | [3 楼]
老子不怕您



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 623
威望: 0
浮云: 1333
在线等级:
注册时间: 2004-09-09
最后登陆: 2008-03-08

5come5帮你背单词 [ sensor /'sensə/ n. 传感器,敏感元件 ]


强烈建议楼主找找写入文件方面的问题。
另外问一下,huffman编码是不定长的,那就有一个问题
如何保证 00001(5bits) 0101(4bits)的数据能够组成一串串Byte写入文件呢?
顶端 Posted: 2007-05-02 18:30 | [4 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.007847(s) query 5, Time now is:11-23 12:24, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号