【问题标题】:In Gimp script-fu, how can you access QuickMask functionality?在 Gimp script-fu 中,如何访问 QuickMask 功能?
【发布时间】:2011-12-13 21:27:10
【问题描述】:

在 Gimp GUI 中,QuickMask 对很多事情都非常有用,但是这个功能似乎不能通过 script-fu 直接使用。在过程浏览器中对我来说没有明显的等价物。

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

【问题讨论】:

    标签: scripting gimp script-fu


    【解决方案1】:

    我的另一个答案包含“理论”的做法 - 但是,OP 在 GIMP 中发现了一个错误,从 2.6.5 版开始,该答案在 cmets 上可以看到。

    我得到了 O.P. 打算做的解决方法:将给定图像层的内容粘贴到图像选择中。如前所述,选择可绘制对象上的编辑复制 -> 编辑粘贴会触发程序崩溃。

    解决方法是通过复制和粘贴方法创建一个具有所需内容的新图像通道,然后使用 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)
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 正如我在问题中暗示的那样,这对我不起作用。使用 GIMP 2.6.5,我在灰度图像中执行此操作:gimp-selection-all、gimp-image-get-selection、gimp-edit-copy[thelayer] 和 gimp-edit-paste[sel channel]。此时,调用 gimp-floating-sel-anchor 将使 Gimp 陷入陷阱。相反,如果我只是简单地完成脚本,GUI 会显示一个无法放入图层的浮动选择(例如附加到通道 (OK)),如果锚定则捕获 GIMP,如果尝试其他任何操作,则会非常奇怪。跨度>
      • 您能在 bugzilla.gnome.org 上为此打开一个错误吗?这样,所有活跃的 GIMP 开发人员都会意识到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      • 2012-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多