如何在 GIMP 脚本中从两侧缩小选择?

How to shrink selection from two sides in GIMP script?

我需要在我的 GIMP 脚本中缩小选择范围。

默认收缩选择命令将整个选择缩小给定大小值(以像素为单位)。

(gimp-selection-shrink inImage 2)

这会将选区缩小 2 个像素。

但我不想缩小整个选择范围。我只想从左侧和右侧删除选择,保持垂直选择不变。

这需要从选择蒙版中移除每一侧(左侧和右侧)最远的像素。

我该怎么做?


值“3px”的脚本所需效果:

https://media.giphy.com/media/l3q2v50vsk8Ze8Ldu/source.gif

如你所见,它的左右两边都是矩形的,需要用户这样选择。

所以我认为一个好的方法是获取选择蒙版的左右 posX,并根据图层的高度和我们要在选择蒙版的每一侧剪切的像素宽度来剪切矩形。

我想使用 Script-Fu 而不是 Python-Fu,因为我不喜欢对用户有额外的要求。

  • 保存您的选择
  • 获取边界框(gimp-selection-bounds
  • 缩小框(+2px 到 Xmin,-4px 到宽度)
  • 根据这些新值创建一个矩形选区
  • 与保存的选择相交