Browse Source

Add the SaveImageAs function

pull/310/head
Wilhem Barbier 7 years ago
parent
commit
954757532a
2 changed files with 14 additions and 1 deletions
  1. +2
    -1
      src/raylib.h
  2. +12
    -0
      src/textures.c

+ 2
- 1
src/raylib.h View File

@ -835,7 +835,7 @@ RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Ve
// Texture Loading and Drawing Functions (Module: textures)
//------------------------------------------------------------------------------------
// Image/Texture2D data loading/unloading functions
// Image/Texture2D data loading/unloading/saving functions
RLAPI Image LoadImage(const char *fileName); // Load image from file into CPU memory (RAM)
RLAPI Image LoadImageEx(Color *pixels, int width, int height); // Load image from Color array data (RGBA - 32bit)
RLAPI Image LoadImagePro(void *data, int width, int height, int format); // Load image from raw data with parameters
@ -849,6 +849,7 @@ RLAPI void UnloadRenderTexture(RenderTexture2D target);
RLAPI Color *GetImageData(Image image); // Get pixel data from image as a Color struct array
RLAPI Image GetTextureData(Texture2D texture); // Get pixel data from GPU texture and return an Image
RLAPI void UpdateTexture(Texture2D texture, const void *pixels); // Update GPU texture with new data
RLAPI void SaveImageAs(Image image, const char *fileName); // Save image to a PNG file
// Image manipulation functions
RLAPI void ImageToPOT(Image *image, Color fillColor); // Convert image to POT (power-of-two)

+ 12
- 0
src/textures.c View File

@ -553,6 +553,18 @@ void UpdateTexture(Texture2D texture, const void *pixels)
rlglUpdateTexture(texture.id, texture.width, texture.height, texture.format, pixels);
}
// Save image to a PNG file
void SaveImageAs(Image image, const char *fileName)
{
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI)
unsigned char* imgData = (unsigned char*)GetImageData(image); // this works since Color is just a container for the RGBA values
SavePNG(fileName, imgData, image.width, image.height, 4);
free(imgData);
TraceLog(INFO, "Image saved: %s", fileName);
#endif
}
// Convert image data to desired format
void ImageFormat(Image *image, int newFormat)
{

Loading…
Cancel
Save