Python-Fu吹き出し削除

GIMP コンピュータ
GIMP

吹き出しの文字を消去する為に作成したスクリプトです。
吹き出しの内部をファジー選択で大まかに選択した状態でフィルターを実行。
フィルターの中身は選択範囲の拡大、穴の削除、塗りつぶし(前景色、背景色、削除(透明))を行います。
手順数は多くないのですが、この作業を何度も繰り返すのでスクリプト化してみました。

#!/usr/bin/env python
# coding: utf8
from gimpfu import *
from array import array
from time import time
def plugin_main(image, layer, grow_step, fill, radius):
    # レイヤーの幅と高さを取得
    w = layer.width
    h = layer.height
    # 範囲選択を拡大
    if grow_step > 0:
        pdb.gimp_selection_grow(image, grow_step)
    # 穴の削除
    pdb.gimp_selection_flood(image)
    if fill == "C":
        # 選択範囲の削除
        pdb.gimp_edit_clear(layer)
    elif fill == "F":
        # 前景色で塗りつぶし
        pdb.gimp_drawable_edit_fill(layer, 0)
    elif fill == "B":
        # 背景色で塗りつぶし
        pdb.gimp_drawable_edit_fill(layer, 1)
    if radius > 0.0:
        pdb.gimp_selection_feather(image, radius)
    # レイヤーの更新
    layer.flush()
    layer.update(0,0,w,h)
register("FukidasiRemove", "", "", "", "", "",
    "吹き出し削除", 
    "*",
    [
    (PF_IMAGE, "image", "Input image", None),
    (PF_DRAWABLE, "drawable", "Drawable", None),
    (PF_INT32, "grow_step", "領域拡大するサイズ", 3),
    (PF_RADIO, "fill", "塗潰し", "B", (("前景色", "F"), ("背景色", "B"), ("クリア", "C"))),
    (PF_FLOAT, "radius", "ぼかし処理", 0.0),
    ],
    [],
    plugin_main,
    menu = "<Image>/Filters")
main()

コメント