PHPで画像をアップロードするだけならmove_uploaded_fileで簡単にできるんだけど、画像サイズを変更したり、画像形式を変更したりするにはちょっと手間が必要。
GDライブラリを使えるなら*1imagecreatefromjpegとか、そういう一連のimage関数を使えばいいわけなんだけど、使えないとなると途端に無理になってしまう。そこで次の手としてImageMagickを使う方法がある。
PECLとかPEARとか言ったライブラリにいろいろそれを扱う関数があるようだけど、たいしたことをしないから直接system関数でconvertとかを呼び出しちゃえばいい。たとえばこんな感じ。
list($org_width, $org_height) = getimagesize($org_image);
$scale = min(1,min($max_width/$org_width, $max_height/$max_height));
$width = $org_width*$scale;
$height = $org_height*$scale;
system("convert -geometry {$width}x{$height} $tmp_name $image");
ImageMagickの諸々のオプションはここを参考にするといいっぽい。