2013-06-27 21 views
8

Śledziłem this samouczek i to, co mam wymyślić do tej pory:Gimp: skrypt Pythona nie pokazuje w 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() 

Ale wtyczki woun't pokazać się w menu gimp (używam GIMP 2.8). Dano plik chmod a + x uprawnienia. Być może lokalizacja pliku stanowi problem: /.gimp-2.8/plug-ins/src/resize.py? Src jest z powodu zaćmienia.

Odpowiedz

10

Jeśli skrypt ma żadnych błędów składni, to nie pojawi się w menu w ogóle - powyższy kod ma błąd składni na pierwszej linii kodu from gimpfu import* (brak spacji przed *)

Jednym z łatwych do sprawdzenia błędów składniowych jest próba uruchomienia skryptu jako samodzielnego (zakończy się niepowodzeniem, gdy nie będzie mógł znaleźć modułu "gimpfu" poza GIMP, ale do tego czasu zostanie przeanalizowana składnia - Innym sposobem jest sprawdzenie składni za pomocą narzędzia Lint, takiego jak pyflakes,

Inne błędy czasu pracy, które skrypt może zawierać, powinny pojawić się w wyskakującym okienku podczas działania to od GIMP - na tym etapie można tylko zaktualizować skrypt i ponowić go z menu. Jeśli jednak zmienisz parametry wejściowe lub wyjściowe ze skryptu, musisz zrestartować GIMP.

I tak, „file location” jest problem - ty musi umieścić swój kod w katalogu określonym dla wtyczek w preferencjach GIMP - domyślnie są to ~/.gimp-2.8/plug-ins/ lub /usr/lib[64]/gimp/2.0/plug-ins - bez " src "- jeśli twój IDE nie pozwala ci określić, gdzie umieścić swoje pliki, musisz je sam skopiować tam lub dodać do katalogu GEMP diler src.

+0

Wprowadzono kilka zmian: dodano brakujące miejsce i przeniesiono skrypt do '/ usr/lib/gimp/2.0/plug-ins'. Teraz pojawia się w menu. Dzięki. – kyng

+4

Kolejna wskazówka do debugowania: uruchom gimp z wiersza poleceń i zobacz, jakie komunikaty o błędach się pojawiają. – kyng

+5

Upewnij się, że skrypt jest wykonywalny. Uruchomienie '$ chmod + x plugin.py' rozwiązało problem. – arunkumar

Powiązane problemy