enixser
07.01.2007, 18:46
Hallo zusammen,
ich fange gerade an, erste Versuche mit Gimp-Skripten zu machen. Dabei bin ich auf das erste Problem gestossen, dass ich nicht mit meinen Suchen im Internet lösen konnte.
Folgendes Problem:
Ich möchte ein neuen Image erstellen, den Hintergrund mit einer Hintergrundfarbe füllen und dann drei kleine Images, die als JPEG-Datei vorliegen, über diesen Hintergrund legen.
Meine Idee zur Vorgehensweise:
1. mit gimp-image-new eues Image erzeugen
2. mit gimp-layer-new neuen Laber erzeugen
3. mit gimp-image-add-layer den neuen Layer zum neuen Image hinzufügen
4. mit gimp-drawable-fill den neuen Layer mit Hintergrundfarbe füllen
bis hierher funktioniert das auch sehr schön - so wie erwartet :)
Zum einfügen der drei Images habe ich mir eine kleine Funktion geschrieben, die ich nacheinander für die drei Images aufrufe. Hier die Funktion:
(define (create-image theImage theLayer filename imgSize xpos ypos)
(let*
(
(file (car (gimp-file-load 1 filename filename)))
(image (car (gimp-image-get-active-drawable file)))
(layer (car (gimp-layer-new theImage imgSize imgSize 1 "" 100.0 0)))
)
(gimp-image-add-layer theImage layer -1)
(gimp-image-scale file imgSize imgSize)
(gimp-colorize image 240 50 60)
(gimp-selection-all file)
(gimp-edit-copy image)
(gimp-edit-paste layer 0)
(gimp-layer-set-offsets layer xpos ypos)
)
)
Leider funktioniert die Funktion nicht so wie erwartet. Es erscheint nur das erste der drei Images, auch an der richtigen/erwarten Position. Das zweite und dritte Image wird nicht angezeigt.
Nun meine zwei Fragen:
1. Was mache ich in meiner Funktion falsch?
2. Ist das überhaupt der richtige Weg, die oben beschriebene Aufgabe zu lösen?
Vielen Dank für alle Hinweise,
Ralf
ich fange gerade an, erste Versuche mit Gimp-Skripten zu machen. Dabei bin ich auf das erste Problem gestossen, dass ich nicht mit meinen Suchen im Internet lösen konnte.
Folgendes Problem:
Ich möchte ein neuen Image erstellen, den Hintergrund mit einer Hintergrundfarbe füllen und dann drei kleine Images, die als JPEG-Datei vorliegen, über diesen Hintergrund legen.
Meine Idee zur Vorgehensweise:
1. mit gimp-image-new eues Image erzeugen
2. mit gimp-layer-new neuen Laber erzeugen
3. mit gimp-image-add-layer den neuen Layer zum neuen Image hinzufügen
4. mit gimp-drawable-fill den neuen Layer mit Hintergrundfarbe füllen
bis hierher funktioniert das auch sehr schön - so wie erwartet :)
Zum einfügen der drei Images habe ich mir eine kleine Funktion geschrieben, die ich nacheinander für die drei Images aufrufe. Hier die Funktion:
(define (create-image theImage theLayer filename imgSize xpos ypos)
(let*
(
(file (car (gimp-file-load 1 filename filename)))
(image (car (gimp-image-get-active-drawable file)))
(layer (car (gimp-layer-new theImage imgSize imgSize 1 "" 100.0 0)))
)
(gimp-image-add-layer theImage layer -1)
(gimp-image-scale file imgSize imgSize)
(gimp-colorize image 240 50 60)
(gimp-selection-all file)
(gimp-edit-copy image)
(gimp-edit-paste layer 0)
(gimp-layer-set-offsets layer xpos ypos)
)
)
Leider funktioniert die Funktion nicht so wie erwartet. Es erscheint nur das erste der drei Images, auch an der richtigen/erwarten Position. Das zweite und dritte Image wird nicht angezeigt.
Nun meine zwei Fragen:
1. Was mache ich in meiner Funktion falsch?
2. Ist das überhaupt der richtige Weg, die oben beschriebene Aufgabe zu lösen?
Vielen Dank für alle Hinweise,
Ralf