Dipende anche da come vuoi lavorare, se ti va bene che l'immagine venga prima caricata sul server, puoi utilizzare un framework javascript, es. Mootools o jquery, se invece vuoi ridimensionare l'immagine prima che venga caricata, allora devi utilizzare per forza un'applet o flash.
Io ho realizzato qualcosa di simile con php e mootools.