Swe*_*Swe 5 python svg gimp gimpfu
我想编写一个 Gimp-Python 插件,以便从当前图像中导出所有 SVG 路径。这看起来很简单,但我坚持使用 pdb 调用,我可能没有正确调用过程,所以我需要你的帮助。
这是我的代码:
#!/usr/bin/env python
from gimpfu import *
def exportToSvg(img, layer) :
gimp.pdb.vectors_export_to_file(img,"C:/Users/Public/Documents/output.svg",0)
register(
"ExportToSvg",
"Export all SVG paths",
"Export all SVG paths from current image",
"My Name",
"My company",
"2015",
"<Image>/MyScripts/Export to svg",
"*",
[],
[],
exportToSvg)
main()
Run Code Online (Sandbox Code Playgroud)
打开 Gimp 并加载图像后,当我单击我的插件时,我收到此错误:
调用 « gimp-procedural-db-proc-info » 时出错:未找到过程«vectors-export-to-file »
当我在 Gimp PDB 中搜索时,我可以找到“gimp-vectors-export-to-file”,那么问题是什么?我应该如何调用这个程序?
你几乎就在那里 - “pdb”模块只是在模块级别公开,所以from gimpfu import *,不需要这样做gimp.pdb.<procname>- 只是pdb.<procname>(尽管如此,它会起作用)。
但真正导致错误的是该过程实际上被调用了
gimp_vectors_export_to_file- 而不是vectors_export_to_file-
您应该将其称为:
pdb.gimp_vectors_export_to_file(img,"C:/Users/Public/Documents/output.svg",None)
Run Code Online (Sandbox Code Playgroud)
另请注意,对于大多数需要图像项整数标识符的 PDB 调用,您应该传递表示该项的适当 Python 对象。用于保存各个向量的“Vectors”对象是通过调用其他PDB函数获得的。要保存所有向量 ,请传递 ,而不是函数描述中列出的“0” None。
注意:您可以使用一个 Python 交互式控制台进行访问filters->python->console- 如果您首先以交互方式测试您的 pdb 调用和图像操作,那么为这些插件和脚本编写代码会容易得多。
要在交互式控制台中获取对图像的引用,请键入:
img = gimp.image_list()[0]