I found this really nice function that receives your desired proportions and resizes/crops the image for you. The function requires ImageMagick to work.
Will it be better to cache the image or resize it every time? I'm pretty sure using gd will be slower than caching, but it won't require me to use ImageMagick, and I still haven't successfully tweaked it (something with ImageMagicks' convert won't work).