我正试图为GIMP编写一种包装器库,以使我的生成性艺术项目更容易,但我在从一个包装器模块与gimpfu接口时遇到了一个问题。下面的插件代码运行良好,并显示一个图像,图像上画有水平线:
from gimpfu import *
from basicObjects import *
def newFilt() :
img = gimp.Image(500, 500, RGB)
background = gimp.Layer(img, "Background", 500, 500,RGB_IMAGE, 100, NORMAL_MODE)
img.add_layer(background, 1)
background.fill(BACKGROUND_FILL)
pdb.gimp_context_set_brush('1. Pixel')
pdb.gimp_context_set_brush_size(2)
for i in range(100):
Line= line([(0,5*i),(500,5*i)])
pdb.gimp_pencil(background,Line.pointcount,Line.printpoints())
gimp.Display(img)
gimp.displays_flush()
register(
"python_fu_render",
"new Image",
"Filters",
"Brendan",
"Brendan",
"2016",
"Render",
"",
[],
[],
newFilt, menu="<Image>/File/Create")
main()
“line”类是在basicObjects中定义的,并且按预期工作,但是如果我尝试替换'pdb.gimp_铅笔(背景,行点计数,线条.打印点())'与'线条。绘制(background)“,并将draw()函数添加到line类中,如下所示:
^{pr2}$图像不会呈现,并且gimp错误中没有显示任何消息控制台。怎么我可以从外部文件中调用pdb吗?使包装器成为一个单独的插件会有所帮助吗?在
第一个: gimp和gimpfu模块只有在Python脚本作为插件从gimp中运行时才起作用。我不知道你叫什么“外部文件”—但是入口点总是一个插件脚本。它可以像任何普通程序一样导入其他Python模块。在
第二:GIMP插件运行的是python2.x(现在是2.7),因此任何声明的类都应该从
object
继承——声明一个类而不继承对象只会给你带来意想不到的问题——尽管这可能不是你现在的问题。在类声明看起来没问题,但您调用它的示例并没有-
Line.draw(background)
似乎表明您试图在类本身上调用方法,而不是在line
类的实例上调用该方法。在相关问题 更多 >
编程相关推荐