首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP GD:透明图像的模糊

PHP GD:透明图像的模糊
EN

Stack Overflow用户
提问于 2010-08-16 08:37:09
回答 1查看 2.5K关注 0票数 2

我正在尝试创建透明的PNG图像的轮廓。以下是我的代码

代码语言:javascript
复制
//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也将火鸡抬起了一点:)

EN

回答 1

Stack Overflow用户

发布于 2010-08-16 09:28:41

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

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3489884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档