Php 在.png图像上应用灰度
我正在尝试将PNG转换为灰度,但我一直得到黑色背景,而不是透明背景。有人知道我做错了什么吗Php 在.png图像上应用灰度,php,filter,png,alpha,grayscale,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=imagecreatefro
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;
}
}
你考虑过使用Imagick或Gmagick吗?这些库更具灵活性您的原始图像有alpha通道吗?请记住,有几个。