From cbfa35a39e2075431aa84ed0c476c39ff3e30adc Mon Sep 17 00:00:00 2001
From: Ray <raysan5@gmail.com>
Date: Fri, 15 Mar 2019 00:56:02 +0100
Subject: [PATCH] REVIEW: ImageResizeCanvas() -WIP-

---
 src/textures.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/textures.c b/src/textures.c
index 95cb4eb56..070c83f31 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -1398,24 +1398,23 @@ void ImageResizeNN(Image *image,int newWidth,int newHeight)
 // NOTE: Resize offset is relative to the top-left corner of the original image
 void ImageResizeCanvas(Image *image, int newWidth,int newHeight, int offsetX, int offsetY, Color color)
 {
-    Image imTemp = GenImageColor(newWidth, newHeight, color);
-    Rectangle srcRec = { 0.0f, 0.0f, (float)image->width, (float)image->height };
-    Rectangle dstRec = { (float)offsetX, (float)offsetY, (float)srcRec.width, (float)srcRec.height };
-
     // TODO: Review different scaling situations
 
     if ((newWidth > image->width) && (newHeight > image->height))
     {
+        Image imTemp = GenImageColor(newWidth, newHeight, color);
+        Rectangle srcRec = { 0.0f, 0.0f, (float)image->width, (float)image->height };
+        Rectangle dstRec = { (float)offsetX, (float)offsetY, (float)srcRec.width, (float)srcRec.height };
+
         ImageDraw(&imTemp, *image, srcRec, dstRec);
         ImageFormat(&imTemp, image->format);
         UnloadImage(*image);
         *image = imTemp;
     }
-    else
+    else if ((newWidth < image->width) && (newHeight < image->height))
     {
-        // TODO: ImageCrop(), define proper cropping rectangle
-        
-        UnloadImage(imTemp);
+        Rectangle crop = { (float)offsetX, (float)offsetY, newWidth, newHeight };
+        ImageCrop(image, crop);
     }
 }