Imagemagick 删除图像区域

Ben*_*idt 1 imagemagick imagemagick-convert

我想从图像中删除一个区域,但我不知道该看哪里。让我举个例子。

来源: 在此输入图像描述

目的地:

在此输入图像描述

因此,我删除了从 100x100 像素开始的 100x100 区域。有人可以指导我去哪里看吗?

Mar*_*ell 7

我想你想在图像上画一个白色矩形。因此,如果您想要一个宽 100 像素、高 20 像素的白色矩形,从左侧偏移 10 像素,从顶部偏移 20 像素,请使用:

magick input.png -fill white -draw "rectangle 10,20 110,40" result.png
Run Code Online (Sandbox Code Playgroud)

因此,如果我使用 200x100 洋红色输入图像,我会得到:

在此输入图像描述


根据评论,如果您的图像没有透明度,这里是一个示例:

在此输入图像描述

为了“打透明孔”,我们创建一个与图像大小相同的新图层,填充白色,然后在其中绘制一个黑洞,并将结果推入原始的透明图层中:

magick image.png \( +clone -fill white -colorize 100% -fill black -draw "rectangle 20,10 300,40" \) -alpha off -compose copy-alpha -composite result.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果原始图像已经具有透明度,我们不想完全替换,而只是用一个额外的孔进行修改,我们可以从这个图像开始:

在此输入图像描述

并继续提取原始 Alpha 通道,修改它并将其推回原始通道:

magick image.png \( +clone -alpha extract -fill black -draw "rectangle 10,40 80,80" \) -alpha off -compose copyalpha -composite result.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述