文件名称:gif图片文件编解码
文件大小:427KB
文件格式:RAR
更新时间:2017-12-22 05:06:16
gif图片格式 lzw压缩算法 双线性插值 listctrl图片 八叉树算法
参考网上的资料写的gif编解码。 编码用gdi解析常用图片格式,然后组装成gif 解码吧gif的每一帧转换成dib gif文件格式网上有很多介绍 gif用的变长lzw压缩算法: 没弄懂原理,只知道过程。压缩取一个字符作为后缀,看看字符串是否存在。存在,用对应的编码作为前缀继续取;不存在把字符串添加到字典,前缀添加到输出流,后缀作为前缀继续取。解压取一个编码看看字典中是否存在。存在用对应的字符串的第一个字符作为后缀,看看当前字符串是否存在,不存在添加到字典中,后缀作为前缀,前缀对应的字符串添加到输出流,继续取;编码不存在,前缀对应的字符串的第一个字符作为后缀(这时当前字符串肯定不存在,字典中下一个可用编码肯定等于刚取出的编码),字符串添加到字典中,编码作为前缀,前缀对应的字符串添加到输出流,继续取。 编码流转换成字节流是按位从低到高的,window是小端模式(低字节在低地址),字节内低位在右边。 24位dib转换成8位dib时使用的八叉树算法 图片拉伸时参考的网上的双线性插值算法。
【文件预览】:
GifCode
----Debug()
--------GifCode.ilk(1.49MB)
----GifCode.suo(65KB)
----GifCode()
--------DlgDecode.h(789B)
--------common()
--------resource.h(1KB)
--------GifCode.h(451B)
--------DlgEncode.h(1KB)
--------Debug()
--------DlgEncode.cpp(6KB)
--------encode()
--------GifCodeDlg.cpp(4KB)
--------GifCode.rc(6KB)
--------stdafx.h(2KB)
--------GifCode.aps(104KB)
--------ReadMe.txt(3KB)
--------decode()
--------res()
--------GifCodeDlg.h(822B)
--------Release()
--------stdafx.cpp(140B)
--------GifCode.vcproj(7KB)
--------GifCode.vcproj.PC-201405121907.Administrator.user(1KB)
--------DlgDecode.cpp(5KB)
--------targetver.h(1KB)
--------GifCode.cpp(2KB)
----GifCode.sln(887B)
----Release()
----GifCode.exe(126KB)