gif图片文件编解码

时间:2017-12-22 05:06:16
【文件属性】:

文件名称: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)

网友评论

  • 很实用,看了很受启发
  • 还以为是linux下纯C的,不知道是否好用
  • 可以用,有好多可以借鉴之处
  • 可以 但是不是我想要的功能 不过可以借鉴
  • 我试验了,可以使用,而且实现了我需要的功能
  • 很实用,看了很受启发
  • 用不上,可惜了
  • 不是纯C的 ,可惜了