Comme indiqué dans le titre, j'utilise FreeImage pour charger des textures dans mon jeu OpenGL, mais comment obtenir des sous-images?Comment obtenir une sous-image avec FreeImage
Mon code actuel ressemble à ceci:
FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;
FIBITMAP* dib = nullptr;
fif = FreeImage_GetFileType(filename, 0);
if (fif == FIF_UNKNOWN)
fif = FreeImage_GetFIFFromFilename(filename);
if (fif == FIF_UNKNOWN)
return nullptr;
if (FreeImage_FIFSupportsReading(fif))
dib = FreeImage_Load(fif, filename);
if (!dib)
return nullptr;
BYTE* pixels = FreeImage_GetBits(dib);
*width = FreeImage_GetWidth(dib);
*height = FreeImage_GetHeight(dib);
*bits = FreeImage_GetBPP(dib);
int size = *width * *height * (*bits/8);
BYTE* result = new BYTE[size];
memcpy(result, pixels, size);
FreeImage_Unload(dib);
return result;
Qu'aurais-je besoin de changer pour obtenir le sous-image (par exemple une zone de pixels dans 32x32 le coin en haut à gauche)?