Redimensionar imagem em C # - Algoritmo para determinar dimensões de redimensionamento (altura e largura)

Preciso reduzir uma imagem que tenha uma altura ou largura maior que um valor de pixel predefinido.

Eu escrevi um código que analisa a imagem original, verifica se a largura, a altura ou a altura e a largura são maiores que as configurações de Largura máxima / Altura máxima.

Agora preciso descobrir em que dimensões redimensionar com base no máximo do último valor.

Por exemplo: Se a imagem for900h x 300w e a altura MAX é700h Vou precisar redimensionar a altura para700 e a largura para???? <- é isso que eu preciso calcular ..

Criar e salvar o arquivo de imagem é simples e está fora do escopo desta postagem:

// First I get the max height and width allowed:

int resizeMaxHeight =  int.Parse(Utility.GetConfigValue("ResizeMaxHeight")); // in config: 700px
int resizeMaxWidth =  int.Parse(Utility.GetConfigValue("ResizeMaxWidth"));  //  in config: 500px

// Save original: 
try
{
    filebase.SaveAs(savedFileName);
}
catch (System.IO.DirectoryNotFoundException ex)
{
    Logger.Instance.LogException(ex, 0, "FileTransfer");
}

// Determin original dimensions:
Image image = System.Drawing.Image.FromFile(Server.MapPath(savedFileName));

int resizeHeight, resizeWidth;
bool doResize = true;

// both height and width are greater than the allowed height and width:
if (image.Width > resizeMaxWidth && image.Height > resizeMaxHeight)
{
    if (image.Height > image.Width) 
        resizeHeight = resizeMaxHeight;
    else
        resizeWidth = resizeMaxWidth;
}
else if (image.Width > resizeMaxWidth)
{
    // width is too great, but height is ok
    resizeWidth = resizeMaxWidth;
}
else if (image.Height > resizeMaxHeight)
{
    // height is too great, but width is ok
    resizeHeight = resizeMaxHeight;
}
else
{
    // image is ok size, don't resize:
    doResize = false;
}

Criar miniatura: é isso que estou trabalhando agora ... não está completo:

if (doResize)
{
    ImageUtilities.ResizeImage(image, resizeWidth, resizeHeight);
}

questionAnswers(5)

yourAnswerToTheQuestion