GIMPのPython-Fuで「パスの境界線を描画」を実行する。

コンピュータ

GIMPの機能で「パスの境界線を描画」をよく使うのでマウス操作ではなくキーボードの操作で実行するためスクリプト化を模索してみました。

#!/usr/bin/env python
# coding: utf8

from gimpfu import *
from array import array
from time import time
import struct

def plugin_main(image, layer):
    # レイヤーの幅と高さを取得
    w = layer.width
    h = layer.height
    # パスの一覧を取得
    len, vecs = pdb.gimp_image_get_vectors(image)
    # パスが無い場合終了
    if (len == 0):
        gimp.message("Not Path")
        return
    # 先頭のパス?を取得
    vec = pdb.gimp_image_get_vectors_by_tattoo(image, vecs[0])
    # パスの境界線を描画
    pdb.gimp_drawable_edit_stroke_item(layer, vec)
    # レイヤーの更新
    layer.flush()
    #layer.merge_shadow()
    layer.update(0,0,w,h)
    

register("MyPathDrawOutline", "", "", "", "", "",
    "パスの境界線を描画", 
    "RGB*",
    [
    (PF_IMAGE, "image", "Input image", None),
    (PF_DRAWABLE, "drawable", "Drawable", None)
    ],
    [],
    plugin_main,
    menu = "<Image>/Filters")

main()

GIMPのプロシージャブラウザでそれらしいプロシージャを探して組み合わせてみました。
ただ、現在選ばれているペンや鉛筆などで描画されるようで、これを指定する方法もありそうなのでおいおい調べてみたいと思います。

コメント