imagemagick 填充矩形外的区域
imagemagick Fill region outside of rectangle
我有一张图片,我想用该图片中位于矩形 之外的部分颜色(例如蓝色)进行填充。此矩形相对于原图左上角的左上角位置和width/height已知
这里原图的边框是红色的,矩形的边框是黑色的。蓝色区域应该被填充。
我该怎么做?我尝试创建一个 tmp 图像并使用 a mask,但它似乎也填充了矩形内的透明区域,这不是我想要的。
此外,可能有一种方法可以在不创建中间图像的情况下做到这一点?不过,我对这两种选择都感兴趣,因为我不确定需求会如何随时间变化——也许将来我必须应用其他形状(不是矩形),所以有一种方法可以应用在这种情况下,任意掩码会更好。
示例:
- 图片:
- 矩形的坐标(假设x轴从左到右,y轴从上到下,
(0,0)
为原图的左上角):
- 左上角
(117,-24)
- 右下角
(1117,1676)
- 找到原始图像中不存在的颜色。提示:使用
-unique-colors
- Fill/draw 具有该颜色的黑色图像
- 把所有不是那个颜色的东西都变成蓝色。提示:使用
-fill blue +opaque THATCOLOUR
- 蓝色像素是你的面具
不确定我是否理解正确,但这是第一部分的内容:
magick 7uZfM.png -alpha deactivate -fill yellow -draw "rectangle 117,-24 1117,1676" result1.png
然后是第二部分:
magick 7uZfM.png -alpha deactivate -fill yellow -draw "rectangle 117,-24 1117,1676" -fill blue +opaque yellow -transparent yellow result2.png
好的,现在显示的是原图:
magick 7uZfM.png \( +clone -alpha deactivate -fill yellow -draw "rectangle 117,-24 1117,1676" -fill blue +opaque yellow -transparent yellow \) -flatten -background magenta result3.png
我有一张图片,我想用该图片中位于矩形 之外的部分颜色(例如蓝色)进行填充。此矩形相对于原图左上角的左上角位置和width/height已知
这里原图的边框是红色的,矩形的边框是黑色的。蓝色区域应该被填充。
我该怎么做?我尝试创建一个 tmp 图像并使用 a mask,但它似乎也填充了矩形内的透明区域,这不是我想要的。
此外,可能有一种方法可以在不创建中间图像的情况下做到这一点?不过,我对这两种选择都感兴趣,因为我不确定需求会如何随时间变化——也许将来我必须应用其他形状(不是矩形),所以有一种方法可以应用在这种情况下,任意掩码会更好。
示例:
- 图片:
- 矩形的坐标(假设x轴从左到右,y轴从上到下,
(0,0)
为原图的左上角):- 左上角
(117,-24)
- 右下角
(1117,1676)
- 左上角
- 找到原始图像中不存在的颜色。提示:使用
-unique-colors
- Fill/draw 具有该颜色的黑色图像
- 把所有不是那个颜色的东西都变成蓝色。提示:使用
-fill blue +opaque THATCOLOUR
- 蓝色像素是你的面具
不确定我是否理解正确,但这是第一部分的内容:
magick 7uZfM.png -alpha deactivate -fill yellow -draw "rectangle 117,-24 1117,1676" result1.png
然后是第二部分:
magick 7uZfM.png -alpha deactivate -fill yellow -draw "rectangle 117,-24 1117,1676" -fill blue +opaque yellow -transparent yellow result2.png
好的,现在显示的是原图:
magick 7uZfM.png \( +clone -alpha deactivate -fill yellow -draw "rectangle 117,-24 1117,1676" -fill blue +opaque yellow -transparent yellow \) -flatten -background magenta result3.png