在Gimp script-fu中,如何访问QuickMask功能?

时间:2011-12-13 21:27:10

标签: scripting gimp script-fu

在Gimp GUI中,QuickMask对很多东西非常有用,但是这个功能似乎不是通过script-fu直接提供的。在程序浏览器中我没有明显的等价物。

特别是,将图层的(值/灰色)像素放入选择蒙版是我需要做的基本事情。我尝试使用gimp-image-get-selection来获取选择通道的id号,然后gimp-edit-paste进入它,但是下面的锚操作导致Gimp崩溃。

2 个答案:

答案 0 :(得分:1)

我的另一个答案包含了“理论上”这样做的方式 - 但是,O.P。在版本2.6.5中发现了GIMP中的一个错误,就像对该答案的评论一样。

我得到了O.P.打算做的解决方法:将给定图像层的内容粘贴到图像选择中。如表示的,编辑副本 - >选择drawable上的编辑粘贴会触发程序崩溃。

解决方法是通过复制和粘贴方法创建具有所需内容的新图像通道,然后使用gimp-selection-load使选择等于通道内容:

因此需要调用的函数(我不会粘贴方案代码,因为我不精通所有括号 - 我在GIMP中使用Python控制台进行了测试):

>>> img = gimp.image_list()[0]
>>> ch = pdb.gimp_channel_new(img, img.width, img.height, "bla", 0, (0,0,0))
>>> ch
<gimp.Channel 'bla'>
>>> pdb.gimp_edit_copy(img.layers[0])
1
>>> pdb.gimp_image_add_channel(img, ch, 0)
>>> fl = pdb.gimp_edit_paste(ch, 0)
>    >> fl
<gimp.Layer 'Pasted Layer'>
>>> pdb.gimp_floating_sel_anchor(fl)
>>> pdb.gimp_selection_load(ch)

答案 1 :(得分:0)

通过用户界面使用QuickMask完全等同于在Selection上绘制,将选择视为可绘制对象。

因此,要在script-fu上使用等效的“quickmask”,所有人需要的是将Selection作为drawable检索并将其作为参数传递给将修改它的调用 - 要获得选择,只需要调用'gimp-image-get-selection'