2013-06-27 27 views
8

Tôi đi theo this hướng dẫn và đây là những gì tôi đã đưa ra cho đến nay:Gimp: python script không hiển thị trong menu

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
#http://www.ibm.com/developerworks/library/os-autogimp/ 

from gimpfu import* 

def plugin_main(timg, tdrawable, maxh=540, maxw=800): 

    currentWidth = tdrawable.width 
    currentHeight = tdrawable.height 

    newWidth = currentWidth 
    newHeight = currentHeight 

    if (maxw < newWidth): 
     newWidth = maxw 
     newHeight = (float(currentHeight)/(float(currentWidth)/newWidth)) 

    if (maxh < newHeight): 
     newHeight = maxh 
     newWidth = (float(currentWidth)/(float(currentHeight)/newHeight)) 

    pdb.gimp_image_scale(timg, newWidth, newHeight) 

register(
     "python_fu_resize", 
     "Saves the image at a maximum width and height", 
     "Saves the image at a maximum width and height", 
     "N N", 
     "N N", 
     "2013", 
     "<Image>/Image/Resize to max...", 
     "*", 
     [], 
     [], 
     plugin_main) 

main() 

Nhưng plugin woun't hiển thị trong trình đơn gimp (Tôi đang sử dụng gimp 2.8). Đã lưu tệp chmod a + x quyền. Có thể vị trí tệp là một vấn đề: /.gimp-2.8/plug-ins/src/resize.py? Src là vì nhật thực.

Trả lời

10

Nếu kịch bản của bạn có bất kỳ lỗi cú pháp, nó sẽ không hiển thị trong menu ở tất cả - đoạn mã trên không có một lỗi cú pháp trên dòng đầu tiên của mã from gimpfu import* (thiếu dấu cách trước *)

Một cách dễ dàng để kiểm tra lỗi cú pháp là cố gắng chạy tập lệnh dưới dạng độc lập (nó sẽ thất bại khi không tìm thấy mô-đun "gimpfu" bên ngoài GIMP, nhưng vào thời điểm đó, cú pháp được phân tích cú pháp - một cách khác là sử dụng tiện ích lint như pyflakes để kiểm tra cú pháp.

Các lỗi thời gian chạy khác mà tập lệnh của bạn có thể chứa sẽ xuất hiện trong cửa sổ bật lên khi chạy từ GIMP - ở giai đoạn đó, bạn chỉ có thể cập nhật tập lệnh của mình và thử lại từ menu. Tuy nhiên, nếu bạn thay đổi các tham số đầu vào hoặc đầu ra từ tập lệnh của mình, bạn phải khởi động lại GIMP.

Và vâng, "tập tin location" một vấn đề - bạn phải đặt mã của bạn trong một thư mục chỉ định cho Plug-ins trong tùy chọn của GIMP - theo mặc định đây là những ~/.gimp-2.8/plug-ins/ hoặc /usr/lib[64]/gimp/2.0/plug-ins - không có " src "- nếu IDE của bạn không cho phép bạn chỉ định vị trí đặt tệp của mình, bạn phải sao chép chúng ở đó, hoặc thêm các thư mục src trong tùy chọn GIMP.

+0

Thực hiện một số thay đổi: thêm khoảng trống còn thiếu và di chuyển tập lệnh sang '/ usr/lib/gimp/2.0/plug-in'. Bây giờ nó xuất hiện trong menu. Cảm ơn. – kyng

+4

Một mẹo khác để gỡ lỗi: bắt đầu gimp từ dòng lệnh và bạn có thể thấy loại thông báo lỗi nào xuất hiện. – kyng

+5

Đảm bảo rằng tập lệnh có thể thực thi được. Chạy '$ chmod + x plugin.py' đã khắc phục sự cố cho tôi. – arunkumar

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