Resize Image to fit in bounding box

algorithm, c#, image-manipulation, image-processing

Solution

Find which is smaller: `MaxWidth / w` or `MaxHeight / h` Then multiply `w` and `h` by that number

Explanation:

You need to find the scaling factor which makes the image fit.

To find the scaling factor, `s`, for the width, then `s` must be such that: `s * w = MaxWidth`. Therefore, the scaling factor is `MaxWidth / w`.

Similarly for height.

The one that requires the most scaling (smaller `s`) is the factor by which you must scale the whole image.

Problem

An easy problem, but for some reason I just can't figure this out today. I need to resize an image to the maximum possible size that will fit in a bounding box while maintaining the aspect ratio. Basicly I'm looking for the code to fill in this function: ``` void CalcNewDimensions(ref int w, ref int h, int MaxWidth, int MaxHeight); ``` Where w & h are the original height and width (in) and the new height and width (out) and MaxWidth and MaxHeight define the bounding box that the image must fit in.

Original source