从外部modu调用gimpfu函数

2024-05-19 03:38:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图为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吗?使包装器成为一个单独的插件会有所帮助吗?在


Tags: from图像imageimport插件imglinergb
1条回答
网友
1楼 · 发布于 2024-05-19 03:38:26

第一个: gimp和gimpfu模块只有在Python脚本作为插件从gimp中运行时才起作用。我不知道你叫什么“外部文件”—但是入口点总是一个插件脚本。它可以像任何普通程序一样导入其他Python模块。在

第二:GIMP插件运行的是python2.x(现在是2.7),因此任何声明的类都应该从object继承——声明一个类而不继承对象只会给你带来意想不到的问题——尽管这可能不是你现在的问题。在

类声明看起来没问题,但您调用它的示例并没有-Line.draw(background)似乎表明您试图在类本身上调用方法,而不是在line类的实例上调用该方法。在

相关问题 更多 >

    热门问题