2016-01-24 17 views
6

Tôi mới tham gia lập trình python-fu gimp Tôi đã dành 4 ngày KHÔNG CÓ LUCK để tìm ra các chức năng phù hợp nhất để sử dụng để có được tọa độ của đường dẫn được vẽ và hiển thị đầu ra trên hộp thư gtk như hình ảnh sau đây.Gimp: Làm thế nào tôi có thể nhận được tọa độ của các điểm công cụ đường dẫn?

enter image description here

Vui lòng xem xét mà tôi phát triển trên cửa sổ máy

Tôi đã thử mã của tôi như thế này:

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() 

Đôi khi các plugin tự nó không hiển thị trong menu, đôi khi không có đầu ra ở tất cả.

Trả lời

2

Tôi đã thử nghiệm vấn đề này trong Ubuntu (tôi biết nó không giống nhau). Tuy nhiên, mã của bạn không xuất ra bất cứ thứ gì, vì vậy tôi đã có thể tái tạo ít nhất phần này của vấn đề.

Chức năng của bạn đã có tiêu đề này tuyên bố:

def python_fu_mahdicoordinates(image, layer): 

Vì vậy, register nên được gọi là như thế này:

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") 

Trong danh sách thay đổi, thông số chức năng của bạn cần phải xử lý đã được khai báo . Trong trường hợp của bạn, hình ảnh và lớp. Điều này làm việc cho tôi.

Tôi không biết tại sao plugin không xuất hiện trong trình đơn của bạn đôi khi, nhưng hãy thử khai báo menu= "<Image>/YourNewMenu" với bất kỳ tên nào bạn muốn. Điều này sẽ sinh ra một thực đơn mới trong thanh thực đơn, và có lẽ sẽ giải quyết hoàn toàn vấn đề của bạn. Đó là giá trị để thử.

Tôi hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan