LumaQQ 开发者文档
CFC文件格式详解_格式
CFC文件格式详解
摘要
CFC文件是腾讯最初的自定义表情文件包格式,后来又推出了EIP格式的自定义表情包,EIP实际上用的是POIFS,这个以后再试着解析了,还是先说说CFC吧。CFC其实很简单,所以,说不上“详解”,也就是随便解一下。
Luma, 清华大学
更新时间: 2005-05-03

CFC格式简单到掉渣,没有文件头,也没有文件尾,由一系列块组成,一个块是一个自定义表情,块之间没有任何数据分隔,如此而已。这个文件用到的整数也都是little-endian格式的。CFC是什么简称?我不知道,可能是Custom Face Cab吧.

一个块有15个字段,如下
  1. md5的字符串形式长度,4个字节
  2. 快捷键长度,4字节
  3. 表情名称长度,4字节
  4. 表情文件名长度,4字节
  5. 表情文件长度,4字节
  6. 微缩图文件名长度,4字节
  7. 微缩文件长度,4字节
  8. 表情文件帧数,4字节
  9. 图片md5的字符串形式
  10. 快捷键
  11. 表情名称
  12. 表情文件名
  13. 微缩图文件名
  14. 表情文件内容
  15. 微缩图内容
稍微解释一下这15个字段
  1. md5是16字节,32个16进制数,所以长度一般都是0x00000020
  2. 快捷键知道是什么吧,这个长度是字节长度,1个汉字2个字节,不要忘记了
  3. 表情名称不是指文件名称,只是表情的名字而已,你在用QQ管理自定义表情的时候,会看到这个玩意,一般来说它都和快捷键相同,当然并不需要相同。感觉这个没什么用,即使QQ自己也很少用到这个玩意
  4. QQ里面用md5加上扩展名表示一个自定义表情,它支持gif格式,bmp格式和jpg格式,比较常见的是gif格式的自定义表情,所以这个长度一般是32 + 4
  5. 自定义表情文件的长度,没什么可解释的
  6. 你在用自定义表情的时候,可以浏览有哪些表情,就好像你用ACDSee时候那样。所以,这个是微缩图的文件名,QQ的处理方式是把自定义表情缩小到20x20大小,然后保存为bmp格式,同时文件名采用“md5 + fixed.bmp”的形式,所以这个字段一般是32 + 9。但是这只是QQ的做法,你可以用别的,LumaQQ对于微缩图也用gif格式
  7. 微缩图文件长度,没什么可解释的
  8. 表情文件帧数,自定义表情很多都是动画,动画自然就是多帧的。LumaQQ没管这个,感觉用不上
  9. QQ一般都是用的大写形式,LumaQQ也用的是大写
  10. 没什么可解释的
  11. 没什么可解释的
  12. 没什么可解释的
  13. 没什么可解释的
  14. 这里是真正的自定义表情数据了,你应该根据前面的长度,把这段数据保存为图像文件
  15. 嗯,微缩图的数据
可能是因为CFC太简单了,而且和腾讯的其他文件不协调,所以腾讯后来用了EIP的格式,EIP文件的格式和腾讯的其他文件格式是一致的,腾讯在POIFS基础上构建了自己的很多文件,要完全兼容他们,恐怕是个很艰苦的工作。

总结

这格式太简单,总结也就不废话了
LumaQQ is a Java QQ client which has a reusable pure Java core and SWT-based GUI
  • 收藏
  • 评论
  • 举报
提问和评论都可以,用心的回复会被更多人看到 评论
发布评论
相关文章