GIMP Python,切换所有路径可见或不可见,如何?

GIMP Python, toggle all paths visible or invisible, how?

我正在尝试创建一个 GIMP Python 插件来打开或关闭图像中所有路径的可见性。这是为了更轻松地处理具有大量路径 (>100+) 的图像,而不是在路径对话框中无休止地单击。

GIMP Python documentation 不是很有帮助,我只能找到函数 set_component_visible。但是当我尝试 img.set_component_visible(v, False)img.set_component_visible(v, 0) 时出现此错误:

TypeError: an integer is required

这是我目前得到的代码:

from gimpfu import *
import os

def select_paths_visible(img, layer, tog, apl, wc):

    # iterate all paths (internally called "vectors")
    for v in img.vectors:
        img.set_component_visible(v, 0) # <== TypeError on this line

# tell gimp about our plugin
register(
    "python_fu_select_paths_visible",
    "Toggle paths visible",
    "Toggle paths visible",
    "BdR",
    "BdR",
    "2017",
    "<Image>/Tools/Toggle paths visible", # menu path
    "",
    [
        (PF_RADIO, "p1", "Toggle paths:", 1, (("Invisible", 0), ("Visible", 1))),
        (PF_RADIO, "p2", "Apply to paths:", 1, (("All", 0), ("With name", 1))),
        (PF_TEXT, "p3", "Pathname contains:", "test")
    ],
    [],
    select_paths_visible
)

main()

我的问题是
1. 我应该以不同的方式使用 set_component_visible
2. 是否有不同的功能来切换路径可见性 on/off?
3. 什么是 GIMP Python 函数

文档的良好来源

简单:

for v in image.vectors:
    v.visible = False
  1. set_component_visible() 是关于 RGB 通道而不是路径(这似乎相当于在“通道”对话框中单击 RGB 通道的可见性)
  2. gimp_vectors_set_visible() 或者像上面那样直接改变向量的属性
  3. 程序浏览器(Python-fu 控制台中的 Browse... 按钮)非常有效,恕我直言。在 Python 中,更常用的调用具有对象方法和属性等价物。使用 dir(object) 列出方法和属性。您会发现许多东西与 PDB 函数具有明显的等价物。属性可以是 R/W(如上面的 visible)或只是 R/O(然后应使用方法或 PDB 函数更改)。

如果您需要示例代码,请参阅这两个脚本存储库:general scripts and paths-related scripts

PS: 为您取名标准:

for v in image.vectors:
    if string in v.name:
        v.visible = False