Forum Wiki Galerie Kontakt Wie man Fragen richtig stellt. Tutorial Forum
Zurück   GIMP-Forum 3.0 > Arbeiten mit Gimp > GIMP-Ressourcen > Skripte

Hinweise
Alt 02.05.2009, 14:15   #1
auchdasnoch
Neuer Benutzer
 
Registriert seit: 26.10.2008
Beiträge: 12
Standard Frage zu gimp-image-add-layer

Hallo, ich habe eine Frage zu (gimp-image-add-layer).

Folgendes möchte ich von script-fu
Code:
    ; gimp-file-load-layer lädt Vorlage als Ebene zu aktuellesbild, 0 für interactive
    (set! ebenen (gimp-file-load-layers 0 bild vorlage))
    (set! anzahlebenen (car ebenen))
    
    (gimp-message (string-append vorlage " mit " (number->string anzahlebenen) " Ebenen geladen"))

    ; Ebenen rückwärts abarbeiten und zum Bild hinzuladen
    (set! ebenenarray (cadr ebenen))
    (set! i anzahlebenen)
    
    (while (> i 0)
      (set! i (- i 1))
      (set! ebene (aref ebenenarray i))
      (gimp-image-add-layer bild ebene -1)
    )
nach Python umschreiben:

Code:
# gimp-file-load-layer laedt Vorlage als Ebene zu aktuelles Bild
num_layers, layer_ids = pdb.gimp_file_load_layers(bild, vorlage)

gimp.message (vorlage + " mit " + str(num_layers) + " Ebenen geladen")

# Ebenen rueckwaerts abarbeiten und zum Bild hinzuladen
    i = num_layers
    while i > 0:
        i = i-1
              pdb.gimp_image_add_layer(bild, ?????????, -1)
????????? heißt, hier weiß ich nicht mehr weiter.


Folgendes erhalte ich als Konsolen-Meldung:

>>> num_layers
24

>>> layer_ids
(539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516)

>>> type(num_layers)
<type 'int'>

>>> type(layer_ids)
<type 'tuple'>

Die Funktion <pdb.gimp_file_load_layers(bild, vorlage)> lädt aus der Datei "vorlage.xcf" 24 Ebenen in ein Image "bild". layer_ids liefert also eine "list of loaded layers".
Anschliessend muß noch <pdb.gimp_image_add_layer(bild, layer?????????, -1)> aufgerufen werden.
Doch wie kann ich mit Python auf die einzelnen Layer zugreifen, um sie in das Image "Bild" einzufügen?

scriptfu:
(set! ebene (aref ebenenarray i))
; liefert den Wert eines Feldes des Arrays. Index beginnend mit 0
(gimp-image-add-layer bild ebene -1)


Python:
num_layers, layer_ids = pdb.gimp_file_load_layers(bild, vorlage)
pdb.gimp_image_add_layer(bild, layer_ids[i], -1)

>> liefert parameter type error

layer_ids[i] ist von Typ int; die Funktion gimp_image_add_layer erwartet an 2. Stelle einen Wert von Typ layer.

Vielen Dank für irgendwelche Tipps!!

Geändert von auchdasnoch (03.05.2009 um 17:27 Uhr)
auchdasnoch ist offline   Mit Zitat antworten
 

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gimp besorgen und installieren. Rebell Technische Fragen 106 28.10.2014 18:30
SW-Labor flashnfantasy GIMP-Ressourcen 65 28.12.2007 19:25
Wie wär es mal mit gequirltem Hintergrund ? flashnfantasy Skripte 17 02.02.2005 07:58
The GIMP 2.1.2 - Entwicklerversion schumaml Neues von GIMP 1 22.07.2004 17:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:34 Uhr.


Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.