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

时间:2017-03-28 21:53:02

标签: python gimp

我正在尝试创建一个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.是否有不同的功能来切换路径可见性开/关?
3.什么是GIMP Python函数文档的良好来源

1 个答案:

答案 0 :(得分:3)

简单地:

for v in image.vectors:
    v.visible = False
  1. set_component_visible()是关于RGB通道而不是路径(它似乎相当于点击Channels对话框中RGB通道的可见性)
  2. gimp_vectors_set_visible()或直接更改向量的属性,如上所述
  3. 过程浏览器(Python-fu控制台中的Browse...按钮)非常高效恕我直言。在Python中,更常用的调用具有等价物作为对象方法和属性。使用dir(object)列出方法和属性。你会发现许多具有明显等价物的东西作为PDB功能。属性可以是R / W(上面为visible)或只是R / O(然后应该使用方法或PDB函数进行更改)。
  4. 如果您需要示例代码,请参阅以下两个脚本存储库:general scriptspaths-related scripts

    PS:因为你的名字标准:

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