|
|
@ -376,22 +376,34 @@ void ExportImage(Image image, const char *fileName) |
|
|
|
int success = 0; |
|
|
|
|
|
|
|
#if defined(SUPPORT_IMAGE_EXPORT) |
|
|
|
// NOTE: Getting Color array as RGBA unsigned char values |
|
|
|
unsigned char *imgData = (unsigned char *)GetImageData(image); |
|
|
|
int channels = 4; |
|
|
|
bool allocatedData = false; |
|
|
|
unsigned char *imgData = (unsigned char *)image.data; |
|
|
|
|
|
|
|
if (image.format == UNCOMPRESSED_GRAYSCALE) channels = 1; |
|
|
|
else if (image.format == UNCOMPRESSED_GRAY_ALPHA) channels = 2; |
|
|
|
else if (image.format == UNCOMPRESSED_R8G8B8) channels = 3; |
|
|
|
else if (image.format == UNCOMPRESSED_R8G8B8A8) channels = 4; |
|
|
|
else |
|
|
|
{ |
|
|
|
// NOTE: Getting Color array as RGBA unsigned char values |
|
|
|
imgData = (unsigned char *)GetImageData(image); |
|
|
|
allocatedData = true; |
|
|
|
} |
|
|
|
|
|
|
|
#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, n">channels, imgData, image.width*n">channels); |
|
|
|
#else |
|
|
|
if (false) {} |
|
|
|
#endif |
|
|
|
#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, n">channels, imgData); |
|
|
|
#endif |
|
|
|
#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, n">channels, imgData); |
|
|
|
#endif |
|
|
|
#if defined(SUPPORT_FILEFORMAT_JPG) |
|
|
|
else if (IsFileExtension(fileName, ".jpg")) success = stbi_write_jpg(fileName, image.width, image.height, mi">4, imgData, 80); // JPG quality: between 1 and 100 |
|
|
|
else if (IsFileExtension(fileName, ".jpg")) success = stbi_write_jpg(fileName, image.width, image.height, n">channels, imgData, 80); // JPG quality: between 1 and 100 |
|
|
|
#endif |
|
|
|
#if defined(SUPPORT_FILEFORMAT_KTX) |
|
|
|
else if (IsFileExtension(fileName, ".ktx")) success = SaveKTX(image, fileName); |
|
|
@ -404,7 +416,7 @@ void ExportImage(Image image, const char *fileName) |
|
|
|
success = true; |
|
|
|
} |
|
|
|
|
|
|
|
RL_FREE(imgData); |
|
|
|
k">if (allocatedData) RL_FREE(imgData); |
|
|
|
#endif // SUPPORT_IMAGE_EXPORT |
|
|
|
|
|
|
|
if (success != 0) TRACELOG(LOG_INFO, "FILEIO: [%s] Image exported successfully", fileName); |
|
|
|