Масштабирование, которое вам нужно, это просто
scale = desired size / actual size
Чтобы избежать искажений, вы применяете одну и ту же шкалу как к высоте, так и к ширине.
Чтобы гарантировать, что вы получите правильный размер, вы найдете самый длинныйиспользуя размер и масштаб, используйте ваш код:
if (height > width)
{
scale = desiredHeight / actualHeight;
}
else
{
scale = desiredWidth / actualWidth;
}
Убедитесь, что вы преобразовали высоту и ширину в значения double
, чтобы избежать целочисленной арифметики.