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
set_component_visible()
是关于 RGB 通道而不是路径(这似乎相当于在“通道”对话框中单击 RGB 通道的可见性)
gimp_vectors_set_visible()
或者像上面那样直接改变向量的属性
- 程序浏览器(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
我正在尝试创建一个 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
set_component_visible()
是关于 RGB 通道而不是路径(这似乎相当于在“通道”对话框中单击 RGB 通道的可见性)gimp_vectors_set_visible()
或者像上面那样直接改变向量的属性- 程序浏览器(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