ADDED: ExportImageToMemory()
Only PNG supported for now
This commit is contained in:
parent
ba802fdd5e
commit
f8b352f6d9
2 changed files with 30 additions and 1 deletions
|
@ -1243,6 +1243,7 @@ RLAPI Image LoadImageFromScreen(void);
|
||||||
RLAPI bool IsImageReady(Image image); // Check if an image is ready
|
RLAPI bool IsImageReady(Image image); // Check if an image is ready
|
||||||
RLAPI void UnloadImage(Image image); // Unload image from CPU memory (RAM)
|
RLAPI void UnloadImage(Image image); // Unload image from CPU memory (RAM)
|
||||||
RLAPI bool ExportImage(Image image, const char *fileName); // Export image data to file, returns true on success
|
RLAPI bool ExportImage(Image image, const char *fileName); // Export image data to file, returns true on success
|
||||||
|
RLAPI unsigned char *ExportImageToMemory(Image image, const char *fileType, int *fileSize); // Export image to memory buffer
|
||||||
RLAPI bool ExportImageAsCode(Image image, const char *fileName); // Export image as code file defining an array of bytes, returns true on success
|
RLAPI bool ExportImageAsCode(Image image, const char *fileName); // Export image as code file defining an array of bytes, returns true on success
|
||||||
|
|
||||||
// Image generation functions
|
// Image generation functions
|
||||||
|
|
|
@ -605,6 +605,34 @@ bool ExportImage(Image image, const char *fileName)
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Export image to memory buffer
|
||||||
|
unsigned char *ExportImageToMemory(Image image, const char *fileType, int *dataSize)
|
||||||
|
{
|
||||||
|
unsigned char *fileData = NULL;
|
||||||
|
*dataSize = 0;
|
||||||
|
|
||||||
|
if ((image.width == 0) || (image.height == 0) || (image.data == NULL)) return NULL;
|
||||||
|
|
||||||
|
#if defined(SUPPORT_IMAGE_EXPORT)
|
||||||
|
int channels = 4;
|
||||||
|
|
||||||
|
if (image.format == PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) channels = 1;
|
||||||
|
else if (image.format == PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) channels = 2;
|
||||||
|
else if (image.format == PIXELFORMAT_UNCOMPRESSED_R8G8B8) channels = 3;
|
||||||
|
else if (image.format == PIXELFORMAT_UNCOMPRESSED_R8G8B8A8) channels = 4;
|
||||||
|
|
||||||
|
#if defined(SUPPORT_FILEFORMAT_PNG)
|
||||||
|
if ((strcmp(fileType, ".png") == 0) || (strcmp(fileType, ".PNG") == 0))
|
||||||
|
{
|
||||||
|
fileData = stbi_write_png_to_mem((const unsigned char *)image.data, image.width*channels, image.width, image.height, channels, dataSize);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return fileData;
|
||||||
|
}
|
||||||
|
|
||||||
// Export image as code file (.h) defining an array of bytes
|
// Export image as code file (.h) defining an array of bytes
|
||||||
bool ExportImageAsCode(Image image, const char *fileName)
|
bool ExportImageAsCode(Image image, const char *fileName)
|
||||||
{
|
{
|
||||||
|
@ -1013,7 +1041,7 @@ Image ImageCopy(Image image)
|
||||||
if (height < 1) height = 1;
|
if (height < 1) height = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
newImage.data = RL_MALLOC(size);
|
newImage.data = RL_CALLOC(size, 1);
|
||||||
|
|
||||||
if (newImage.data != NULL)
|
if (newImage.data != NULL)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue