【发布时间】:2019-12-30 11:29:12
【问题描述】:
我想用 20 像素的边框在透明背景中勾勒出一个对象的轮廓。但是,我想用边框颜色填充封闭区域。
$image = new Imagick('./img/hinata.png');
$mask = clone $image;
$mask->separateImageChannel(Imagick::CHANNEL_ALPHA);
$mask->negateImage(true);
$mask->edgeImage(20);
$mask->opaquePaintImage("white","blue",65000,false);
//// TODO: I don't know how to fill the holes
$mask->transparentPaintImage("black",0.0,0,false);
$image->compositeImage($mask,Imagick::COMPOSITE_DEFAULT,0,0);
【问题讨论】:
-
请发布您的原始输入,而不是用棋盘代替透明度的输入。提取 alpha 通道,然后使用形态扩张来扩展它。然后使用连接的组件来填充孔。
标签: php image imagemagick imagick