반응형
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gtk
import sys
plug_in_proc = "plug-in-vitneum-py3-scriptName"
plug_in_binary = "py3-scriptName"
# 스크립트 처리 본문
def scriptName_run(procedure, run_mode, image, drawables, config, data):
# 다이얼로그 팝업
GimpUi.init(plug_in_binary)
dialog = GimpUi.ProcedureDialog.new(procedure, config, "다이얼로그 제목")
# 다이얼로그 팝업안의 그룹
box = dialog.fill_box("그룹이름", ["arg이름", "arg이름"])
box.set_orientation (Gtk.Orientation.HORIZONTAL)
# 다이얼로그 내용 배치
dialog.fill(["그룹이름"])
if not dialog.run():
dialog.destroy()
return procedure.new_return_values(Gimp.PDBStatusType.CANCEL, None)
else:
dialog.destroy()
## 작업할 내용
# 다이얼로그 에서 값 전달받기
# 변수명 = config.get_property('arg이름')
# .....
return procedure.new_return_values(Gimp.PDBStatusType.SUCCESS, None)
# 기본설정
class scriptName (Gimp.PlugIn):
def do_query_procedures(self):
return [ plug_in_proc ]
def do_create_procedure(self, name):
procedure = None
if name == plug_in_proc:
procedure = Gimp.ImageProcedure.new(self, name,
Gimp.PDBProcType.PLUGIN,
scriptName_run, None)
procedure.set_menu_label("메뉴명")
procedure.add_menu_path('<Image>/MyScript/')
procedure.set_documentation("짧은설명",
"긴설명",
name)
procedure.set_attribution("Vitneum", "Vitneum", "2025")
# 값 입력 다이얼로그 항목들 예제
# procedure.add_int_argument("arg이름", "입력받을 값 제목", None,
# 최소값, 최대값, 기본값, GObject.ParamFlags.READWRITE)
# procedure.add_boolean_argument ("arg이름", "입력받을 값 제목",
# "자세한 설명",
# 기본값(True/False), GObject.ParamFlags.READWRITE)
# procedure.add_brush_argument ("brush", "_Brush", "Brush", True,
# Gimp.Brush.get_by_name ("2. Hardness 025"),
# False,
# GObject.ParamFlags.READWRITE)
# procedure.add_font_argument ("font", "_Font", "Font", True,
# Gimp.Font.get_by_name ("Serif"),
# False,
# GObject.ParamFlags.READWRITE)
# procedure.add_gradient_argument ("gradient", "_Gradient",
# "Gradient", True,
# Gimp.Gradient.get_by_name ("Incandescent"),
# False,
# GObject.ParamFlags.READWRITE)
# procedure.add_palette_argument ("palette", "_Palette",
# "Palette", True,
# Gimp.Palette.get_by_name ("Default"),
# False,
# GObject.ParamFlags.READWRITE)
# procedure.add_pattern_argument ("pattern", "Pa_ttern",
# "Pattern", True,
# Gimp.Pattern.get_by_name ("Paper"),
# False,
# GObject.ParamFlags.READWRITE)
# export_format_choice = Gimp.Choice.new()
# export_format_choice.add("png", 1, "png", "png")
# export_format_choice.add("jpg", 2, "jpg", "jpg")
# procedure.add_choice_argument("format", "_Format",
# "Format", export_format_choice, "png",
# GObject.ParamFlags.READWRITE)
return procedure
Gimp.main(scriptName.__gtype__, sys.argv)
[참조]
https://testing.developer.gimp.org/resource/writing-a-plug-in/tutorial-python/
GIMP Developer - Python Plug-Ins
Python Plug-Ins Both our libgimp and libgimpui libraries are introspected thanks to the GObject-Introspection project. It means that the Python API is actually nearly exactly the same as the C library, except it follows Python language idiosyncrasies. For
testing.developer.gimp.org
반응형
'김프(Gimp) 사용법' 카테고리의 다른 글
김프GIMP 보간유형 간단설명 (0) | 2024.02.22 |
---|---|
김프(GIMP) 윈도우 버전의 브러쉬렉(?) 해결방법 한가지 (0) | 2023.11.30 |
플랫팩(Flatpack)버전 김프(GIMP) 필수(?)플러그인 한번에 설치 (0) | 2022.04.07 |
BIMP : 김프(GIMP) 이미지 일괄작업 처리 플러그인 (0) | 2021.04.12 |
python-FU 기본2. 매크로 작성 예제 (0) | 2020.11.15 |