1) Se non sbaglio mel tuo codice non hai preso in considerazione se l'immagine ha altezza e larghezza uguali !
2) La variabile $side da dove salta fuori? è uguale a $height no? perchè $heigth la passi due volte alla funzione? Sono un po' confuso...