コード例 #1
0
ファイル: xrLoadSurface.cpp プロジェクト: OLR-xray/XRay-NEW
FIBITMAP*	Surface_Load(char* full_name)
{
	// load
	FREE_IMAGE_FORMAT	fif		= FreeImage_GetFIFFromFilename(full_name);
	FIBITMAP*			map		= FreeImage_Load(fif,full_name);
	if (0==map)			return NULL;

	// check if already 32bpp
	if (32==FreeImage_GetBPP(map))	return map;

	// convert
	FIBITMAP*			map32	= FreeImage_ConvertTo32Bits(map);
	if (0==map32)		map32	= map;
	else				FreeImage_Free(map);

 	return				map32;
}
コード例 #2
0
ファイル: xrLoadSurface.cpp プロジェクト: OLR-xray/XRay-NEW
u32*	Surface_Load(char* name, u32& w, u32& h)
{
	if (strchr(name,'.')) *(strchr(name,'.')) = 0;

	// detect format
	string256		full;
	if (!Surface_Detect(full,name)) return NULL;

	FIBITMAP* map32		= Surface_Load(full);

	h					= FreeImage_GetHeight	(map32);
	w					= FreeImage_GetWidth	(map32);

	u32			memSize	= w*h*4;
	u32*		memPTR	= (u32*)(xr_malloc(memSize));
	u32*		memDATA	= (u32*)(FreeImage_GetScanLine(map32,0));
	CopyMemory	(memPTR,memDATA,memSize);
	FreeImage_Free		(map32);
	return		memPTR;
}
コード例 #3
0
int __cdecl
main(int argc, char *argv[]) {
	FreeImageIO io;

	io.read_proc = _ReadProc;
	io.write_proc = _WriteProc;
	io.seek_proc = _SeekProc;
	io.tell_proc = _TellProc;

	FILE *file = fopen("d:\\images\\money-256.bmp", "rb");

	if (file != NULL) {
		FIBITMAP *dib = FreeImage_LoadBMPFromHandle(&io, (fi_handle)file);

		FreeImage_Free(dib);

		fclose(file);
	}

	return 0;
}