REVIEWED: ExportImage(), optimized #1218
Avoid GetImageData() retrieval and free
This commit is contained in:
parent
776e4a37ef
commit
7cf1e76d53
1 changed files with 5 additions and 9 deletions
|
@ -376,22 +376,20 @@ void ExportImage(Image image, const char *fileName)
|
||||||
int success = 0;
|
int success = 0;
|
||||||
|
|
||||||
#if defined(SUPPORT_IMAGE_EXPORT)
|
#if defined(SUPPORT_IMAGE_EXPORT)
|
||||||
// NOTE: Getting Color array as RGBA unsigned char values
|
|
||||||
unsigned char *imgData = (unsigned char *)GetImageData(image);
|
|
||||||
|
|
||||||
#if defined(SUPPORT_FILEFORMAT_PNG)
|
#if defined(SUPPORT_FILEFORMAT_PNG)
|
||||||
if (IsFileExtension(fileName, ".png")) success = stbi_write_png(fileName, image.width, image.height, 4, imgData, image.width*4);
|
if (IsFileExtension(fileName, ".png")) success = stbi_write_png(fileName, image.width, image.height, 4, (unsigned char *)image.data, image.width*4);
|
||||||
#else
|
#else
|
||||||
if (false) {}
|
if (false) {}
|
||||||
#endif
|
#endif
|
||||||
#if defined(SUPPORT_FILEFORMAT_BMP)
|
#if defined(SUPPORT_FILEFORMAT_BMP)
|
||||||
else if (IsFileExtension(fileName, ".bmp")) success = stbi_write_bmp(fileName, image.width, image.height, 4, imgData);
|
else if (IsFileExtension(fileName, ".bmp")) success = stbi_write_bmp(fileName, image.width, image.height, 4, (unsigned char *)image.data);
|
||||||
#endif
|
#endif
|
||||||
#if defined(SUPPORT_FILEFORMAT_TGA)
|
#if defined(SUPPORT_FILEFORMAT_TGA)
|
||||||
else if (IsFileExtension(fileName, ".tga")) success = stbi_write_tga(fileName, image.width, image.height, 4, imgData);
|
else if (IsFileExtension(fileName, ".tga")) success = stbi_write_tga(fileName, image.width, image.height, 4, (unsigned char *)image.data);
|
||||||
#endif
|
#endif
|
||||||
#if defined(SUPPORT_FILEFORMAT_JPG)
|
#if defined(SUPPORT_FILEFORMAT_JPG)
|
||||||
else if (IsFileExtension(fileName, ".jpg")) success = stbi_write_jpg(fileName, image.width, image.height, 4, imgData, 80); // JPG quality: between 1 and 100
|
else if (IsFileExtension(fileName, ".jpg")) success = stbi_write_jpg(fileName, image.width, image.height, 4, (unsigned char *)image.data, 80); // JPG quality: between 1 and 100
|
||||||
#endif
|
#endif
|
||||||
#if defined(SUPPORT_FILEFORMAT_KTX)
|
#if defined(SUPPORT_FILEFORMAT_KTX)
|
||||||
else if (IsFileExtension(fileName, ".ktx")) success = SaveKTX(image, fileName);
|
else if (IsFileExtension(fileName, ".ktx")) success = SaveKTX(image, fileName);
|
||||||
|
@ -403,9 +401,7 @@ void ExportImage(Image image, const char *fileName)
|
||||||
SaveFileData(fileName, image.data, GetPixelDataSize(image.width, image.height, image.format));
|
SaveFileData(fileName, image.data, GetPixelDataSize(image.width, image.height, image.format));
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
|
#endif // SUPPORT_IMAGE_EXPORT
|
||||||
RL_FREE(imgData);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (success != 0) TRACELOG(LOG_INFO, "FILEIO: [%s] Image exported successfully", fileName);
|
if (success != 0) TRACELOG(LOG_INFO, "FILEIO: [%s] Image exported successfully", fileName);
|
||||||
else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to export image", fileName);
|
else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to export image", fileName);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue