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