What are the recommended approaches for caching watermarked images in PHP to improve performance?

Watermarking images in PHP can be resource-intensive, especially when processing multiple requests. To improve performance, caching watermarked images can help reduce the processing time for subsequent requests. One recommended approach is to store the watermarked images in a cache directory and check if the cached image exists before applying the watermarking process.

// Check if the watermarked image exists in the cache directory
$cacheDir = 'cache/';
$watermarkedImage = $cacheDir . 'watermarked_image.jpg';

if (!file_exists($watermarkedImage)) {
    // Apply watermark to the original image
    $originalImage = 'original_image.jpg';
    $watermark = imagecreatefrompng('watermark.png');
    $image = imagecreatefromjpeg($originalImage);
    
    // Apply watermark to the image
    // Code for applying watermark goes here
    
    // Save the watermarked image to the cache directory
    imagejpeg($image, $watermarkedImage);
    
    // Free up memory
    imagedestroy($image);
}

// Output the watermarked image
header('Content-Type: image/jpeg');
readfile($watermarkedImage);