Redimensionar imagen en PHP

Quiero escribir algo de código PHP que redimensiona automáticamente cualquier imagen cargada a través de un formulario a 147x147px, pero no tengo idea de cómo hacerlo (soy un novato relativo de PHP).

Hasta ahora, tengo imágenes que se cargan correctamente, se reconocen los tipos de archivos y se limpian los nombres, pero me gustaría agregar la funcionalidad de cambio de tamaño en el código. Por ejemplo, tengo una imagen de prueba que tiene 2.3MB y 1331x1331 en dimensión, y me gustaría que el código la redujera, lo que supongo que también comprimirá dramáticamente el tamaño de archivo de la imagen.

Hasta ahora, tengo lo siguiente:

if ($_FILES) {
                //Put file properties into variables
                $file_name = $_FILES['profile-image']['name'];
                $file_size = $_FILES['profile-image']['size'];
                $file_tmp_name = $_FILES['profile-image']['tmp_name'];

                //Determine filetype
                switch ($_FILES['profile-image']['type']) {
                    case 'image/jpeg': $ext = "jpg"; break;
                    case 'image/png': $ext = "png"; break;
                    default: $ext = ''; break;
                }

                if ($ext) {
                    //Check filesize
                    if ($file_size < 500000) {
                        //Process file - clean up filename and move to safe location
                        $n = "$file_name";
                        $n = ereg_replace("[^A-Za-z0-9.]", "", $n);
                        $n = strtolower($n);
                        $n = "avatars/$n";
                        move_uploaded_file($file_tmp_name, $n);
                    } else {
                        $bad_message = "Please ensure your chosen file is less than 5MB.";
                    }
                } else {
                    $bad_message = "Please ensure your image is of filetype .jpg or.png.";
                }
            }
$query = "INSERT INTO users (image) VALUES ('$n')";
mysql_query($query) or die("Insert failed. " . mysql_error() . "<br />" . $query);

Respuestas a la pregunta(10)

Su respuesta a la pregunta