ImageMagick - 如何使用Alpha通道拉伸图像中元素的边缘颜色?

时间:2016-06-05 20:13:02

标签: image colors imagemagick border edge

我再也没有了。即使看了很多,我也没有找到答案。 这里是要处理的图像:

[此处图片] [1] - > http://kohlhas-3d.de/1.png

以下问题我试图解决:

  1. 我有一个带alpha通道的PNG
  2. 首先我想找到png中的所有元素
  3. 然后我想拉伸边框上的最后一个颜色约5到10个像素 [例子拉伸] [1] - > http://kohlhas-3d.de/1.jpg
  4. 拉伸必须在图像上每个物体中心的所有方向上(如三角形,矩形......)
  5. 重要的是,我保持边缘上每个像素的颜色
  6. 这可能吗?目标是,将来使用ImageMagick自动化流程。

    向所有人致以问候 阿尼尔

2 个答案:

答案 0 :(得分:1)

我有一个扭曲的游戏,它可能是要走的路,但需要更多的调查。我正在研究一个较小的图像,代码基本上是一个概念证明。

我认为边缘是关键选项,在这个例子中,我在扭曲中将调整大小的图像的大小减少了20px。 我不知道你怎么会得到有角度的边缘。我知道你不想扭曲原版,但它可能会给你一些关于如何得到你想要的结果的想法。

convert "1.png" -trim -matte -virtual-pixel edge -mattecolor none -interpolate Spline +distort BilinearForward "0,0 20,20 400,0 380,20 400,95 380,55 0,95  20,55" -trim +repage "result.png"

Result of the code

答案 1 :(得分:0)

我不太清楚图片边缘发生了什么,但这应该让你开始......

首先,我修剪掉任何透明边缘(-trim),这样我们就可以找到你想要扩展的实际模式。然后克隆图像并处理除顶行像素之外的所有内容(使用-crop)。然后将该行缩放到800像素高。然后在处理顺序中将高顶行与原始图像交换(使用+swap)并将原始图像附加到高度扩展的顶行下方。

convert cells.png -trim +repage \( +clone -crop x1+0+0 -scale x800! \) +swap -append result.png

enter image description here