What are the best practices for handling image compression in PHP to ensure optimal performance and quality?

When handling image compression in PHP, it is important to strike a balance between reducing file size for optimal performance and maintaining image quality. One common approach is to use the GD or Imagick extension to resize and compress images while preserving their visual integrity. Additionally, optimizing image formats (such as converting PNGs to JPEGs for photos) and implementing caching mechanisms can further enhance performance.

// Example of image compression using GD extension
function compressImage($source, $destination, $quality) {
    $info = getimagesize($source);

    if ($info['mime'] == 'image/jpeg') {
        $image = imagecreatefromjpeg($source);
    } elseif ($info['mime'] == 'image/png') {
        $image = imagecreatefrompng($source);
    }

    imagejpeg($image, $destination, $quality);

    imagedestroy($image);
}

// Usage
$source = 'example.jpg';
$destination = 'compressed.jpg';
$quality = 75;

compressImage($source, $destination, $quality);