使用Gimp Python插件导出所有SVG路径

我想编写一个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()

打开Gimp并加载图像后,当我点击我的插件时收到此错误:

调用«gimp-procedural-db-proc-info»时出错:
未找到程序«vectors-export-to-file»

当我在Gimp PDB中搜索时,我可以找到“gimp-vectors-export-to-file”,那么问题是什么?
我该如何调用此程序?

最佳答案 你几乎就在那里 – “pdb”模块只是在模块级别暴露了来自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)

另请注意,对于需要图像项的整数标识符的大多数PDB调用,您应该传递表示该项的适当Python对象.用于保存单个向量的“向量”对象是通过调用其他PDB函数获得的.要保存所有向量,而不是函数描述中列出的“0”,请传递None.

注意:您可以使用过滤器访问Python交互式控制台 – >> python->控制台 – 如果您首先以交互方式测试pdb调用和图像操作,则可以更轻松地编写这些插件和脚本的代码.

要在交互式控制台中获取对图像的引用,请键入:

img = gimp.image_list()[0]

点赞