I have this PHP script that resizes an image to 50% (or any preset percentage)
- $filename = 'test.jpg';
- $percent = 0.5;
-
- // Content type
- header('Content-Type: image/jpeg');
-
- // Get new dimensions
- list($width, $height) = getimagesize($filename);
- $new_width = $width * $percent;
- $new_height = $height * $percent;
-
- // Resample
- $image_p = imagecreatetruecolor($new_width, $new_height);
- $image = imagecreatefromjpeg($filename);
- imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
-
- // Output
- imagejpeg($image_p, null, 100);
Now what if I want to specify $new_width as 1200 (px) and tell the $new_height to be calculated automatically keeping the aspect ratio and set the name of the new image as "test-2.jpg"
- $filename = 'test.jpg';
-
- // Content type
- header('Content-Type: image/jpeg');
-
- // Get new dimensions
- list($width, $height) = getimagesize($filename);
- $new_width = 1200;
- $new_height = // MUST BE AUTO;
-
- // Resample
- $image_p = imagecreatetruecolor($new_width, $new_height);
- $image = imagecreatefromjpeg($filename);
- imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
-
- // Output
- imagejpeg($image_p, null, 100);