#!python # -*- mode: python; Encoding: utf-8; coding: utf-8 -*- # Last updated: <2025/12/06 21:23:18 +0900> """ GIMP 3.0 Python-Fu sample. Windows11 x64 25H2 + GIMP 3.0.4 Portable Rev 2 """ import sys import gi gi.require_version("Gimp", "3.0") from gi.repository import Gimp gi.require_version("GimpUi", "3.0") from gi.repository import GimpUi gi.require_version("Gio", "2.0") from gi.repository import Gio from gi.repository import Gtk from gi.repository import GLib from gi.repository import Gegl from gi.repository import GObject # 他のクラスと重ならないユニークな名前をつけること class m256FirstPythonPlugin(Gimp.PlugIn): def do_query_procedures(self): # プロシージャブラウザで表示される名前。ユニークな名前にすること。 return ["m256-plug-in-hello-world-python"] def do_set_i18n(self, name): """国際化に対応してるかどうかを返す""" return False def do_create_procedure(self, name): """プロシージャに登録するための設定""" procedure = Gimp.ImageProcedure.new( self, name, Gimp.PDBProcType.PLUGIN, self.run, None ) # 対応画像形式 procedure.set_image_types("*") # 画像を開いてなくてもメニューを有効にする procedure.set_sensitivity_mask(Gimp.ProcedureSensitivityMask.ALWAYS) # メニュー上に表示するラベル名 procedure.set_menu_label("Hello World py") # メニューの場所 procedure.add_menu_path("/Filters/Development/") # 説明 procedure.set_documentation( "Display Hello World", # 簡単な説明 "My first Python 3 plug-in for GIMP 3.0", # 詳細な説明 name, ) # 作成者、著作権者、作成日 procedure.set_attribution("YOUR NAME", "your name", "2025/12/05") return procedure def run(self, procedure, run_mode, image, drawables, config, run_data): """処理内容""" # ここに実処理を書く Gimp.message("Hello world!") # 処理を実行して、成功した場合は以下を返す: return procedure.new_return_values(Gimp.PDBStatusType.SUCCESS, GLib.Error()) class GetDialog(Gtk.Dialog): """ダイアログ関係""" def __init__(self, parent, plugin): Gtk.Dialog.__init__( self, title="Dialog Title", parent=parent, flags=Gtk.DialogFlags.MODAL ) # プラグインとして登録する Gimp.main(m256FirstPythonPlugin.__gtype__, sys.argv)