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); } }