庆祝一下,我调了一个星期的东西
哈,为了庆祝你们可以问我理解范围之内的问题,但我不代人作业.(就今天而已)我有一个库,这个库提供文件打包支持,除了加密功能外还需要加入文件格式读写,其中有两个计划.
第一个是jpeg解码,第二个是ogg解码.我找了很多图形和音频编码发现这两种对于"免费","方便"是支持最好的.
K,为了使用jpeg编码,我找遍了所有东西,libjpeg,freeimage,就差opencv了(但我觉得那个好大)
后来发现MFC带有CImage类也可以处理图形数据,但悲剧的是它的接口好像是COM.而且是纯文件流封的很死.
不过在于C/C++的强大,网上找到有人采用锁内存方法,这是一种欺骗方法,让数据流接口认为是一个硬盘文件.
我弄了整整一个星期,没有附带vs以外的第三方库来读jpeg文件.累死了.
PS:
void* data;//里面放着真实的数据
FILE *=data;//另求这种实现,最好能模拟流函数比如open 或 fopen
================================================================================================
看看最后的成果(文件缩小了,但打开的时间变长了,因为要解码)
对比一下,如果图形越多越大,相差就越大.
http://pan.baidu.com/s/1jGv92lg
这是未启用解码的时候
http://pan.baidu.com/s/1eQEE99o
这是启用解码之后
现在我准备新做一个小游戏,有了这个方法我就可以任意加载我想要的图片了,而不是一个小程序占用几十MB这种情况.
虽然ogg部分还没解决
[ 本帖最后由 天使梦魔 于 2014-3-28 15:15 编辑 ]