What are the best practices for resizing images in PHP to maintain quality and aspect ratio?

When resizing images in PHP, it is important to maintain the quality and aspect ratio to prevent distortion. One common approach is to use the `imagecopyresampled()` function to resize the image while preserving its quality and aspect ratio. This function allows you to specify the desired width and height of the resized image while keeping the original aspect ratio intact.

function resizeImage($sourceImage, $targetImage, $maxWidth, $maxHeight) {
    list($sourceWidth, $sourceHeight, $sourceType) = getimagesize($sourceImage);
    $sourceAspect = $sourceWidth / $sourceHeight;
    
    $targetAspect = $maxWidth / $maxHeight;
    
    if ($sourceAspect > $targetAspect) {
        $newWidth = $maxWidth;
        $newHeight = $maxWidth / $sourceAspect;
    } else {
        $newHeight = $maxHeight;
        $newWidth = $maxHeight * $sourceAspect;
    }
    
    $source = imagecreatefromjpeg($sourceImage);
    $target = imagecreatetruecolor($newWidth, $newHeight);
    
    imagecopyresampled($target, $source, 0, 0, 0, 0, $newWidth, $newHeight, $sourceWidth, $sourceHeight);
    
    imagejpeg($target, $targetImage, 100);
    
    imagedestroy($source);
    imagedestroy($target);
}

// Example usage
resizeImage('input.jpg', 'output.jpg', 800, 600);