我正在尝试创建一个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函数文档的良好来源
答案 0 :(得分:3)
简单地:
for v in image.vectors:
v.visible = False
set_component_visible()
是关于RGB通道而不是路径(它似乎相当于点击Channels对话框中RGB通道的可见性)gimp_vectors_set_visible()
或直接更改向量的属性,如上所述Browse...
按钮)非常高效恕我直言。在Python中,更常用的调用具有等价物作为对象方法和属性。使用dir(object)
列出方法和属性。你会发现许多具有明显等价物的东西作为PDB功能。属性可以是R / W(上面为visible
)或只是R / O(然后应该使用方法或PDB函数进行更改)。如果您需要示例代码,请参阅以下两个脚本存储库:general scripts和paths-related scripts
PS:因为你的名字标准:
for v in image.vectors:
if string in v.name:
v.visible = False