在.png图像上应用灰度

时间:2013-03-27 10:08:01

标签: php filter png alpha grayscale

我正在尝试将PNG转换为灰度,但我不断获得黑色背景而不是透明背景。有谁知道我在这里做错了什么?

private function applyGrayscale($path,$name,$prefix,$infix='gray_'){
    list($filename,$extention) = explode('.',strtolower($name));

    switch($extention){
        case 'jpg'  :   $image=imagecreatefromjpeg($path.$prefix.$name);break;
        case 'jpeg' :   $image=imagecreatefromjpeg($path.$prefix.$name);break;
        case 'gif'  :   $image=imagecreatefromgif($path.$prefix.$name);break;
        case 'png'  :   $image=imagecreatefrompng($path.$prefix.$name);break;
        default     :   $image=imagecreatefromjpeg($path.$prefix.$name);break;
    }

    imagealphablending($image, true);
    imagesavealpha($image,true);
    imageFilter($image,IMG_FILTER_GRAYSCALE);

    switch($extention){
        case 'jpg'  :   imagejpeg($image,$path.$prefix.$infix.$name,100);break;
        case 'jpeg' :   imagejpeg($image,$path.$prefix.$infix.$name,100);break;
        case 'gif'  :   imagegif($image,$path.$prefix.$infix.$name);break;
        case 'png'  :   imagepng($image,$path.$prefix.$infix.$name,9);break;
        default     :   imagejpeg($image,$path.$prefix.$infix.$name,100);break;
    }
}

0 个答案:

没有答案