Расчет размера изображения по сравнению с доступным пространством

#c# #algorithm

Вопрос:

Давайте предположим, что у меня есть картинка, и мне нужно поместить ее в квадрат. Но в некоторых случаях картинка слишком большая, поэтому мне нужно изменить ее размер, чтобы она соответствовала квадрату.

Алгоритм должен рассчитать и вернуть, на сколько мне нужно уменьшить его размер. Функция получает высоту, ширину изображения, высоту квадрата и ширину квадрата. Он вернет число, указывающее, на сколько мне нужно уменьшить, сохраняя исходное соотношение ширины и высоты.

Это мое решение, и я не уверен, что охватываю все случаи:

 double CalcPicSize(double picWidth, double  picHeight, double  sqWidth, double  sqHeight )
{
    var widthRatio, heightRatio;
    if (picWidth <= 0 || picHeight <= 0 || sqWidth <= 0 || sqHeight <= 0)
        return -1;

    if (picWidth == null || picHeight == null || sqWidth == null || sqHeight == null)
        return -1;

    if(picWidth <= sqWidth amp;amp; picHeight <= sqHeight)
        return 1;

    widthRatio = picWidth / sqWidth;
    heightRatio = picHeight / sqHeight;
    if(widthRatio > heightRatio)
        return widthRatio;
    return heightRatio;
}
 

Комментарии:

1. этот вид лучше подходит для codereview.stackexchange.com

2. Is square height = height of the square .. или height*height ? (потому что имхо.. квадрат имеет одинаковую высоту и ширину)