【问题标题】:PHP GD: Blur for transparent imagePHP GD:透明图像的模糊
【发布时间】:2011-03-30 05:26:56
【问题描述】:

我正在尝试使用透明胶片创建 PNG 图像的轮廓。 这是我的代码


//file that i am working with
$file='http://www.google.com/mapfiles/turkey.png';
$im  =imagecreatefrompng($file);
imagealphablending($im, false);
imagesavealpha($im, true);
$imw      =imagesx($im);
$imh      =imagesy($im);
//turkey body color
$bodycolor=imagecolorallocatealpha($im, 144, 144, 144, 50);
//imageholder
$imnew    =imagecreatetruecolor($imh, $imh);
imagealphablending($imnew, false);
imagesavealpha($imnew, true);
$transparent_color=imagecolorallocatealpha($imnew, 0, 0, 0, 127);
imagecolortransparent($imnew, $transparent_color);
imagefilledrectangle($imnew, 0, 0, $imh, $imh, $transparent_color);
for ($i=0; $i > 24;
        //all not transparent pixels are copied to imageholder
        if ($alpha != 127)
            {
            imagesetpixel($imnew, $i, $j, $bodycolor);
            }
        }
    }
//blur filter
imagefilter($imnew, IMG_FILTER_GAUSSIAN_BLUR);
imagefilter($imnew, IMG_FILTER_GAUSSIAN_BLUR);
imagefilter($imnew, IMG_FILTER_GAUSSIAN_BLUR);
header ("Content-type: image/png");
imagepng ($imnew);
imagedestroy ($imnew);
?>

所以,我需要得到边缘模糊的火鸡的轮廓。我需要在“外部”模糊边缘,因此像素离边缘越远,使用相同的 rbg 就越透明。并且 imagefilter 也把火鸡举起来了 :)

【问题讨论】:

    标签: php png transparency gd


    【解决方案1】:

    对于像这样更复杂的图像处理,我强烈建议您使用 ImageMagick:http://www.imagemagick.org

    它很容易安装到您的服务器上,速度非常快,并且有很好的文档。他们有一个完整的部分来说明你在说什么:http://www.imagemagick.org/Usage/channels/

    【讨论】:

    • 不幸的是,我无法在我的服务器上使用 Imagick。但是感谢您的回复:)
    猜你喜欢
    • 2013-03-17
    • 2023-03-18
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    相关资源
    最近更新 更多