Gimp Python插件无需当前打开的图像? (插件是通过FileChooserDialog打开/导出/关闭图像)

时间:2015-10-02 14:40:01

标签: python gimp

希望使用用户可能尚未打开的图像文件。虽然看起来我只能在已经打开图像的情况下启用插件。在打开图像之前,Gimp 2.8附带的所有Python插件都将被禁用。通过许多示例进行搜索,似乎每个示例都需要在插件执行之前已经打开图像。

这是一个基本的helloworld.py

#!/usr/bin/env python

import gtk
from gimpfu import *

def plugin_main() :

    message = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_OK)
    message.set_markup("Please Help")
    message.run()
    gimp.quit()

register(
    "helloworld",
    "Saying Hi",
    "Saying Hello to the World",
    "William Crandell <william@crandell.ws>",
    "William Crandell <william@crandell.ws>",
    "2015",
    "Hello Gimp",
    "*",
    [],
    [],
    plugin_main,
    menu = "<Toolbox>/Hello/"
)

main()

如何在不将任何图像文件打开到Gimp的情况下运行?Menu Disabled Visualization

几乎相关的问题GIMP, python-fu: How to disable "Input image" and "Input drawable"

1 个答案:

答案 0 :(得分:1)

来自http://www.exp-media.com/content/extending-gimp-python-python-fu-plugins-part-4的报价

  

请注意,我使用了工具箱菜单输入字段,并清空了源   图像类型,这样,我们的插件出现在菜单中,你可以   即使没有打开图像也要选择它。

重要的部分是图像类型,它是插件框架的一部分,请参阅:http://www.gimp.org/docs/python/#plugin_framework

"*"作为&#39;图片类型&#39;插件期望任何图像作为初始输入的一部分,这意味着当前图像(因为通配符*而接受的任何类型)将作为插件启动的一部分提供。将类型更改为""相当于在启动期间不输入图像,因此允许插件在没有当前打开的图像的情况下运行。

#!/usr/bin/env python

import gtk
from gimpfu import *

def plugin_main() :

    message = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_OK)
    message.set_markup("Thank you Frederic Jaume -> \nhttp://www.exp-media.com/content/extending-gimp-python-python-fu-plugins-part-4")
    message.run()
    gimp.quit()

register(
    "helloworld",
    "Saying Hi",
    "Saying Hello to the World",
    "William Crandell <william@crandell.ws>",
    "William Crandell <william@crandell.ws>",
    "2015",
    "Hello Gimp",
    "",
    [],
    [],
    plugin_main,
    menu = "<Toolbox>/Hello/"
)

main()