GIF文件解压缩算法

[复制链接]
4250|7
 楼主| yang_sir 发表于 2007-9-20 17:51 | 显示全部楼层 |阅读模式
手上的项目是PMP,需要做图片解码的功能,看了看JPEG,GIF的压缩和解压算法,都挺变态的,GIF的MS简单些,打算先做GIF的解压,哪位仁兄之前干过这件事呀,帮忙解答解答嘛,有源码可以参考就最好了!
 楼主| yang_sir 发表于 2007-9-20 17:52 | 显示全部楼层

re

同志们朋友们,多多献计献策呀!
whereis 发表于 2007-9-20 18:48 | 显示全部楼层

.

你的PMP是什么软件平台?
minigui,qt,gtk,directfb都有现成的函数调用,显示1个gif文件。
只要构建这些平台的时候,--enable-gif,且交叉编译了gif的动态库。


 楼主| yang_sir 发表于 2007-9-22 13:59 | 显示全部楼层

re

minigui平台的2次开发。
WHEREIS,PMP要做图片浏览的功能,而输入的GIF文件是压缩过的,需要解压,而且还需要做SCALER的功能,所以才需要用到LZW的算法来实现。
 楼主| yang_sir 发表于 2007-9-22 14:04 | 显示全部楼层

RE

WHEREIS的意思是说MINIGUI有函数可以调用吗?
我看过他的编程指南,好像没有哟。
当然,他是有一些PNG,JPEG等文件的显示函数,比如PAINTIMAGE,FILLBOX之类。
whereis 发表于 2007-9-22 16:06 | 显示全部楼层

.

输入的GIF文件是压缩过的,需要解压??

不会是tar过了吧,呵呵。。

minigui里面显图,好像是LoadBitmap()之类的,具体细节问飞漫。
directfb里面显图,用DFBCHECK (dfb->CreateImageProvider (dfb, DATADIR"/XXX.gif", &provider));
 楼主| yang_sir 发表于 2007-9-24 09:59 | 显示全部楼层

re

GIF文件是有编码的,输入的图片是已经编码过的,需要解码的,算法主要就是LZW,阵痛之后,现在已经差不多了,软件可以实现文本的压缩解压了。加上PNG文件的格式解析就可以收工了。
JPEG文件的解码要复杂的多呢!有大量的算法,LZ77只是辅助算法,这个东西可能会更难做一些。
MINIGUI的画图函数只是把给定的图片文件打印出来,但是要实现预览,SCALER等功能的话,就需要自己来解码了,比如说U盘的图片文件夹打开,预览等功能。
whereis ,谢谢你的解答!

 楼主| yang_sir 发表于 2007-9-26 10:26 | 显示全部楼层

re

对于静态的GIF图片,把文件头和文件尾巴去掉后,使用LZW解压算法,再把解压后的文件最前加上BMP文件头,就可以把文件解成BMP格式了。÷
对于动画效果的GIF文件解成BMP格式就复杂些,需要把一幅一幅的图片分开,只需解压图象数据部分。
工作过程中发现其实GIF文件的压缩率并不高,不过也和图片有关系,和BMP比较起来,空间还是少的惊人。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

23

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部