首页 > 解决方案 > 如何使用 Imagemagick 或 PIL 绘制高质量的图像描边(边框)?

问题描述

我试图将图像描边(边框)绘制到我的 png 图像。 原来的 ph_res
(*预期 19px 笔触图层样式由 Photoshop 生成)

我从 imagemagick 论坛找到了有用的脚本。(imagemagick话语

convert source.png -background '#2a7940' -alpha background -channel A -blur 9x11 stroked.png

但我最好的尝试与 Photoshop 的结果相去甚远。 im_res

我尝试了 Radius*Sigma 的许多组合,但它似乎是模糊技巧的最佳结果..(这个 -blur 9x11)

问题
* 我可以从 Imagemagick 或 PIL 或其他 CLI 工具中获得更好的图像描边吗?
* 如果是这样,如何..?
非常感谢您阅读这个问题。

标签: pythonimage-processingimagemagickpython-imaging-library

解决方案


当您需要使用 ImageMagick 创建的效果的边缘干净时,您可以将输入图像的大小加倍,运行操作,然后将其调整回其原始输入大小。运行这些操作需要更长的时间,但结果可以大大改善。这是一个示例命令...

convert bomb-source.png -write mpr:in -resize 200% \
   -channel A -morphology dilate disk:38 +channel \
   -fill green -colorize 100 -resize 50% mpr:in -composite result.png

该命令首先读取输入图像并将副本存储在名为“mpr:in”的内存寄存器中。

然后它将输入的大小调整为 200%,并使用“-morphology”将形状扩大约 38 个像素。在图像缩小回其输入大小后,这将达到大约 19 个像素。

接下来,它将新形状着色以使其变为绿色并将其大小调整为 50%,即恢复为原始大小。

该命令通过带回原始图像的“mpr:in”副本并将其合成到修改后的绿色部分来完成。

增加大小,处理它,并在修改后减小它称为“超级采样”。这是一种使边缘更平滑的常用技术,但它是以速度为代价的。

编辑以添加输出图像... 在此处输入图像描述


推荐阅读