7

私は gimp python-fu プログラミングを初めて使用します。描画されたパスの座標を取得し、次の画像のように gtk メッセージ ボックスに出力を表示するために、どの関数を使用するのが最適かを判断するために 4 日間を費やしました。 .

ここに画像の説明を入力

Windowsマシンで開発していることを考慮してください

私は次のように自分のコードを試しました:

import gtk, gimpui
from gimpfu import *

def debugMessage(Message):
    dialog = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, Message)
    dialog.run()
    dialog.hide()

def python_fu_mahdicoordinates(image, layer):
    vectors = pdb.gimp_image_get_active_vectors(image)
    nstrokes, strokes = pdb.gimp_vectors_get_strokes(vectors)
    stroke_type, n_points, cpoints, closed = pdb.gimp_vectors_stroke_get_points(vectors, strokes[0])
    x0 = cpoints[0]
    y0 = cpoints[1]
    x1 = cpoints[6]
    y1 = cpoints[7]
    x2 = cpoints[12]
    y2 = cpoints[13]
    x3 = cpoints[18]
    y3 = cpoints[19]
    debugMessage('(' + str(x0) + ', ' + str(y0) + ', '+str(x1) + ', '+str(y1) + ', '+str(x2) + ', '+str(y2) + ', '+str(x3) + ', '+str(y3) + ')')

    return

register(
    "python_fu_mahdicoordinates",
    "Mahdi Cooridnates",
    "Get Cooridnates of any path",
    "Mahdi Alkhatib", "Mahdi Alkhatib", "2016",
    "Mahdi Cooridnates...",
    "*",
    [],
    [],
    python_fu_mahdicoordinates,
    menu= "<Image>/Tools/Misc")

main()

プラグイン自体がメニューに表示されないこともあれば、何も出力されないこともあります。

4

1 に答える 1

2

私はこの問題を Ubuntu でテストしています (同じではないことはわかっています)。ただし、コードは何も出力しなかったため、少なくともこの部分の問題を再現できました。

関数には、次の宣言ヘッダーがあります。

def python_fu_mahdicoordinates(image, layer):

したがって、次のregisterように呼び出す必要があります。

register(
    "python_fu_mahdicoordinates",
    "Mahdi Cooridnates",
    "Get Cooridnates of any path",
    "Mahdi Alkhatib", "Mahdi Alkhatib", "2016",
    "Mahdi Cooridnates...",
    "*",
    [
        (PF_IMAGE, "image", "takes current image", None),
        (PF_LAYER, "layer", "takes current layer", None),
    ],
    [],
    python_fu_mahdicoordinates,
    menu= "<Image>/YourNewMenu")

変更されたリストでは、関数が処理する必要があるパラメーターを宣言する必要があります。あなたの場合、画像とレイヤー。これは私にとってはうまくいきます。

なぜプラグインがメニューに表示されないのかわかりませんが、menu= "<Image>/YourNewMenu"好きな名前で宣言してみてください。これにより、メニューバーに新しいメニューが生成され、おそらく問題が完全に解決されます。試してみる価値があります。

これが役立つことを願っています。

于 2016-02-15T16:34:44.083 に答える