mask用に黒色のレイヤーを新規作成するプラグイン
白色で選択範囲を描画するため前景色を白にセット。また、半透明にすることで元レイヤーが見えるようにしています。
ファイル名:my-add_mask_layer/my-add_mask_layer.py
#!/usr/bin/env python3
# マスク用の黒色レイヤーを追加
import sys, gi, subprocess
import datetime, os, time
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp, GObject, Gio, Gegl
PROC = "python-fu-add-mask-laye"
def run(proc, run_mode, image, drawables, config, data):
# 前景色・背景色をセット
bk = Gegl.Color.new("#000000")
wh = Gegl.Color.new("#FFFFFF")
Gimp.context_set_foreground(bk)
Gimp.context_set_background(wh)
# 現在のレイヤーを取得
sel_layers = image.get_selected_layers()
layer = sel_layers[0] if sel_layers else None
if (layer is None):
return proc.new_return_values(Gimp.PDBStatusType.EXECUTION_ERROR, None)
image.raise_item_to_top(layer)
# 選択中のレイヤーから新しいレイヤーを生成
new_layer = Gimp.Layer.new_from_drawable(layer, image)
# レイヤーの挿入
Gimp.Image.insert_layer(image, new_layer, None, 0)
# 前景色で塗りつぶし
Gimp.Drawable.edit_fill(new_layer, 0)
# レイヤー名をmaskに変更
new_layer.set_name("mask")
# レイヤーの不透明度を50%にセット
Gimp.Layer.set_opacity(new_layer, 50.0)
# 前景色・背景色をセット
Gimp.context_set_foreground(wh)
Gimp.context_set_background(bk)
Gimp.displays_flush()
return proc.new_return_values(Gimp.PDBStatusType.SUCCESS, None)
class RunAddMaskLayer(Gimp.PlugIn):
def do_query_procedures(self):
return [PROC]
def do_create_procedure(self, name):
if name != PROC:
return None
p = Gimp.ImageProcedure.new(self, name, Gimp.PDBProcType.PLUGIN, run, None)
p.set_menu_label("Add Mask Layer")
p.add_menu_path("<Image>/Filters/My") # 画像を開いている時に表示
p.set_documentation(
"Add Mask Layer",
"マスクレイヤーの追加",
"my-add_mask_layer.py"
)
p.set_attribution("Your Name", "Public Domain", "2025")
# 画像が必要なメニュー配下なので image types を指定
p.set_image_types("*")
# 描画対象が選べる状態で有効化(最低限の感度)
p.set_sensitivity_mask(Gimp.ProcedureSensitivityMask.DRAWABLE)
return p
Gimp.main(RunAddMaskLayer.__gtype__, sys.argv)


コメント