public static function desaturate($image, $percent = 100)
{
// Determine percentage
$percent = Helper::percent($percent);
$width = imagesx($image);
$height = imagesy($image);
if ($percent === 100) {
self::grayscale($image);
} else {
// Make a desaturated copy of the image
$newImage = imagecreatetruecolor($width, $height);
imagealphablending($newImage, false);
imagecopy($newImage, $image, 0, 0, 0, 0, $width, $height);
imagefilter($newImage, IMG_FILTER_GRAYSCALE);
// Merge with specified percentage
Helper::imageCopyMergeAlpha($image, $newImage, array(0, 0), array(0, 0), array($width, $height), $percent);
return $newImage;
}
return null;
}