Si, ci avevo pensato ma più o meno come dovrebbe funzionare il tutto?

Cioè, come definisco la percentuale?
Praticamente io devo fare in modo che l'immagine abbia una larghezza massima di 300px.
Il procedimento dovrebbe essere questo:

controllo la larghezza del'immagine
se è < 300 = tutto ok
se è > 300 = passo al resizing

e qui come faccio?

se l'immagine è di 500px per esempio come faccio a ridimensionarla a 300 mantenendo le proporzioni? Non voglio il codice ma solo il procedimento logico perchè onestamente non riesco a farlo!