Yo te recomendaría usar alguna "classe" para tratamiento de imagenes .. algo más completo de sólo lo que ahora necesitas, pero .. mañana podrías necesitar.
Por ejemplo:
phpThumb
http://phpthumb.sourceforge.net/
Resuelve la mayoría de problemas para trabajar con imagenes. Hace prácticamente de todo: escalar imagenes, rotarlas, B/N .. etc ...
Si no te interesa "toda" la classe .. busca los métodos que hacen esos efectos y toma nota de su código ... Pero, lo dicho .. al final sea por ir recopilando funciones de aquí y de allá o creandolas tu mismo acabarías en algo similar a lo que una classe de estas características ya hace o aglutina -todo en uno-
Un saludo,