| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -1399,22 +1399,55 @@ void ImageResizeNN(Image *image,int newWidth,int newHeight) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void ImageResizeCanvas(Image *image, int newWidth,int newHeight, int offsetX, int offsetY, Color color) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // TODO: Review different scaling situations | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if ((newWidth > image->width) && (newHeight > image->height)) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    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 }; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        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 if ((newWidth < image->width) && (newHeight < image->height)) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            Rectangle crop = { (float)offsetX, (float)offsetY, newWidth, newHeight }; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            ImageCrop(image, crop); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        else    // One side is bigger and the other is smaller | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            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)newWidth, (float)newHeight }; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			             | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            if (newWidth < image->width) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                srcRec.x = offsetX; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                srcRec.width = newWidth; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                dstRec.x = 0.0f; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			             | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            if (newHeight < image->height) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                srcRec.y = offsetY; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                srcRec.height = newHeight; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                dstRec.y = 0.0f; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        ImageDraw(&imTemp, *image, srcRec, dstRec); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        ImageFormat(&imTemp, image->format); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        UnloadImage(*image); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        *image = imTemp; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    else if ((newWidth < image->width) && (newHeight < image->height)) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        Rectangle crop = { (float)offsetX, (float)offsetY, newWidth, newHeight }; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        ImageCrop(image, crop); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            // TODO: ImageDraw() could be buggy? | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            ImageDraw(&imTemp, *image, srcRec, dstRec); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            ImageFormat(&imTemp, image->format); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            UnloadImage(*image); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            *image = imTemp; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |