getScaledInstance() Como ajustar à tela

Bom dia a todos,

Não estou conseguindo pensar em uma maneira dinâmica de tratar o seguinte:
Eu recebo uma imagem de resolução não fixa e gostaria que esta se ajustasse ao tamanho de um JDialog (o qual é 600 x400). Estou usando:

tamanhoReal = image;
ajustadoATela = image.getScaledInstance(600, 400, Image.SCALE_SMOOTH);

… mas, assim, a imagem é ‘deformada’ quando a largura é muito maior que a altura e vice versa. Alguma maneira dinâmica de se fazer o ajuste sem que a imagem seja ‘deformada’?

Uai, em vez de passar 600 e 400, você tem de fazer as contas certas.

Digamos que sua imagem original tenha 100 por 300.

Você tem de chegar aos valores 133 e 400.

Digamos agora que sua imagem original tenha 300 por 100.

Você tem de chegar aos valores 600 e 200.

Fica por sua conta entender como é que cheguei a esse resultado.