我想知道是否有人可以使用.c或.h圖像以及在gimp中導出的SDL。我知道有.xpm,但我無法以某種方式爲.xpm圖像啓用透明度。使用在SDL中使用gimp導出的.c/.h圖像
我知道在C中有一些複雜的方法來呈現.c/.h文件,但我寧願使用SDL,因爲我正在試着學習它。
提前致謝!
我想知道是否有人可以使用.c或.h圖像以及在gimp中導出的SDL。我知道有.xpm,但我無法以某種方式爲.xpm圖像啓用透明度。使用在SDL中使用gimp導出的.c/.h圖像
我知道在C中有一些複雜的方法來呈現.c/.h文件,但我寧願使用SDL,因爲我正在試着學習它。
提前致謝!
瘸子頭導出功能,使用它自己的格式,提供用於uncrunch其宏,更多的細節here
您可以將原始數據緩存加載到使用SDL_CreateRGBSurfaceFrom
,只要你想加載圖片到SDL表面SDL,我可以建議你簡單地轉換圖片文件作爲一個C數組,而不是作爲原始圖片,但仍然爲bmp或png,
可以使用this tool任何二進制文件轉換成.H
這將提供你文件大小爲定義和一個指向文件緩衝區,
#define dataSize 93722
unsigned char data[dataSize] = {
'B', 'M', 0x1A, 'n', 0x1, 0x0, 0x0, 0x0,
0x0, 0x0, 'z', 0x0, 0x0, 0x0, 'l', 0x0,
...
};
,因爲它是SDL您需要的緩衝區轉換爲SDL_RWops結構,
SDL_RWops * z = SDL_RWFromMem(data,dataSize);
現在這種結構加載到你需要使用* _RW功能的新SDL表面,
如果普通使用經典的BMP文件,它直接支持SDL與SDL_LoadBMP_RW 相同THI NG存在sdl image對於所有支持的圖片類型,
SDL_Surface * titleScreen = SDL_LoadBMP_RW(z,1);
用於定義一個SDL表面的透明色值,你可以使用SDL_SetColorKey功能
SDL_SetColorKey(titleScreen, SDL_SRCCOLORKEY, 10);
如果你想有一個具體的例子,check this old source,它是uncrunch &從內存rar文件中加載幾個bmp圖片到sdl,
作爲原始數據或bmp不收斂您的可執行文件大小可以快速增長,mayb Ë看看upx可執行壓縮機,壓縮 整個exe將壓縮他的出貨數據量太大,位圖或生將被碾碎,但在你的程序
我不知道怎麼感謝你夠本深入講解還是生的。如果只有我能夠......我肯定會+1。無論如何,非常感謝! – pepi55