2012-09-15 3 views
0

SDL_image API를 사용하면 FILE *을 전달하고 SDL_Surface *를 가져올 수 있습니다.바이트 배열을 사용하여 FILE 구조 만들기

현재지도 자료실을 디자인하고 있습니다. 파일 중 하나가 타일 세트입니다. 그것은 PNG 이미지가 될 것입니다.

파일에서 모든 바이트를 읽고 버퍼 (바이트 배열)에 넣습니다.

바이트 배열에서 FILE *을 만드는 방법은 무엇입니까? private가 될 FILE 구조체 내부의 내용을 수정해야한다면 신경 쓰지 않아도된다.하지만 처음에는 구조체의 몇 멤버가 무엇인지 파악하기가 어려웠다.

편집 (I는 _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

수 없습니다. 그것은 불가능합니다. FILE*은 바로 그 파일입니다. SDL API가 C I/O를 사용하므로 죽은 물고기만큼 유용하다는 사실에 대해서는 아무 것도 할 수 없습니다.

+0

입니다. 디스크에 바이트를 쓴 다음 FILE *로 읽을 수 있습니다. O : 예상대로 작동합니까? –

+0

어쨌든 해결책을 찾았습니다. 시간을내어 응답 해 주신 모든 분들께 감사드립니다. –

+0

@ Magtheridon96 글쎄, 디스크에 가지 않고도 바이트를 "실제"파일로 바꾸기 위해 mmap을 사용할 수 있습니다. 편집 : 죄송합니다, 죽은 게시물 미안 해요. – Potatoswatter

관련 문제