How can PHP be used to ensure that images larger than a certain size are resized while smaller images remain unchanged?

To ensure that images larger than a certain size are resized while smaller images remain unchanged, you can use PHP to check the dimensions of the image and resize it accordingly using the GD library. You can set a maximum width and height for the images, and if the image exceeds these dimensions, it can be resized proportionally.

$original_image = 'path/to/original/image.jpg';
$max_width = 800;
$max_height = 600;

list($width, $height) = getimagesize($original_image);

if ($width > $max_width || $height > $max_height) {
    $ratio = $width / $height;

    if ($width > $max_width) {
        $new_width = $max_width;
        $new_height = $new_width / $ratio;
    } elseif ($height > $max_height) {
        $new_height = $max_height;
        $new_width = $new_height * $ratio;
    }

    $new_image = imagecreatetruecolor($new_width, $new_height);
    $source = imagecreatefromjpeg($original_image);

    imagecopyresampled($new_image, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    imagejpeg($new_image, 'path/to/resized/image.jpg', 90);

    imagedestroy($new_image);
    imagedestroy($source);
} else {
    // Do nothing, image is already within size limits
}