2012-09-15 22 views
0

SDL_image API允许您传入FILE *并获得SDL_Surface *。使用字节数组创建FILE结构

目前,我正在设计一个地图档案。 其中一个文件是一个tileset。这将是一个PNG图像(无损压缩的大格式)。

我正在读取文件中的所有字节,并将它们放入一个缓冲区(一个字节数组)。

我该如何去创建FILE *出字节数组? 我不在乎是否必须修改FILE结构中任何意味着是私有的东西,这是我最初的方法,但是我在确定结构的几个成员是什么时遇到困难。 (我指的是_iobuf结构)

编辑

你必须明白,我使用zlib的,这意味着从归档中的未压缩的文件读取时,我使用的功能unzReadCurrentFile。 我不知道是否有办法在使用zlib时直接获取FILE *。

+0

你走了。 http://pastebin.com/NggCLEVg –

+0

“SDL_image API允许您传入FILE *并获得SDL_Surface *。”哪一个?我很努力在SDL_Image中找到一个带有“FILE *”的函数。 – jrok

+0

@jrok:IMG_LoadPNG_RW(SDL_RWFromFP(myFILEPointer,0))所以它实际上不是直接转换; –

回答

1

你不行。这是不可能的。 A FILE*就是这样一个文件。您无法对SDL API使用C I/O这一事实做任何事情,因此与死鱼差不多。

+0

刚才我发现我可以将字节写入磁盘,然后将它们读为FILE *:O 应该如预期的那样工作? –

+0

无论如何,我找到了解决办法,感谢所有花时间回复的人。 –

+0

@ Magtheridon96那么,你也可以使用'mmap'将字节变成一个“真实”的文件,而不用去磁盘。编辑:哎呀,抱歉的帖子。 – Potatoswatter