In terms of PHP image manipulation scripts, what are the advantages of using a reusable class for image processing tasks compared to standalone functions?

When working with PHP image manipulation scripts, using a reusable class for image processing tasks offers several advantages over standalone functions. A class allows for better organization and encapsulation of related functions, making the code more maintainable and easier to understand. Additionally, a class can store state information between function calls, which can be useful for tasks that require multiple steps or configurations. Lastly, a class can be easily extended or customized for specific use cases without modifying the original code.

<?php
class ImageProcessor {
    private $image;

    public function __construct($imagePath) {
        $this->image = imagecreatefromjpeg($imagePath);
    }

    public function resize($width, $height) {
        $resizedImage = imagecreatetruecolor($width, $height);
        imagecopyresampled($resizedImage, $this->image, 0, 0, 0, 0, $width, $height, imagesx($this->image), imagesy($this->image));
        return $resizedImage;
    }

    public function save($outputPath) {
        imagejpeg($this->image, $outputPath);
    }
}

$imageProcessor = new ImageProcessor('input.jpg');
$resizedImage = $imageProcessor->resize(200, 200);
$imageProcessor->save('output.jpg');
?>