使用 PHP 和 Imagemagick 围绕 png 进行外描边

问题描述 投票:0回答:0

我正在尝试在透明 png 的内容周围加上白色描边。我已经用下面的代码成功地完成了这个,但是它应用了一个内部笔划,所以它实际上覆盖了 png 的外边缘并且看起来很糟糕。

外笔划代号:

   $alpha = clone $overlay;
   $alpha->separateImageChannel(Imagick::CHANNEL_ALPHA);
   $alpha->negateImage(true);
   $alpha_width = $alpha->getImageWidth();
   $alpha_height = $alpha->getImageHeight();
   $alpha->edgeImage(10);
   $alpha->opaquePaintImage("white","white",6500,FALSE);
   $alpha->transparentPaintImage("black",0.0,0,FALSE);
   $overlay->compositeImage($alpha,Imagick::COMPOSITE_DEFAULT,0,0);

我尝试将边缘大小更改为负数,希望它会变成一个外部笔画,但没有。

我还发现有一种叫做 EdgeOut 的形态学方法可以满足我的要求。但是,我在 PHP 手册中找不到任何关于如何使用它的信息。我尝试了以下操作,但出现错误(未定义的类常量'MORPHOLOGY_EDGEOUT')

$alpha->morphology(\Imagick::MORPHOLOGY_EDGEOUT, 2, $kernel);
php imagemagick imagick
© www.soinside.com 2019 - 2024. All rights reserved.