I don't believe that there is any way of doing this we standard PHP, but most Linux servers (Redhat anyway) have djpeg and cjpeg which can be used to create thumbnails. I use it like so (overly simplified):
$tmp_file = $_FILES['tmp_name'];
if($tmp_file['type'] == "image/jpg" || $tmp_file['type'] == "image/jpeg") {
$ext = ".jpg";
} else if ($tmp_file['type'] == "image/gif") {
$ext = ".gif";
}
move_uploaded_file($tmp_file,"/var/www/cribzero/images/$id.$ext");
system("djpeg /var/www/cribzero/images/$id.$ext | pnmscale -width 150 | cjpeg > /var/www/cribzero/images/t_$id.$ext");