PDA

Vollständige Version anzeigen : Erste Gehversuche


kocobloc
19.09.2008, 17:41
Ich bin totaler Skripte-Noob und kann mich auch nicht umbedingt mit unglaublichen GIMP-Kenntnissen brüsten, trotzdem habe ich versucht ein kleines Skript zu schreiben da ich etwas in der Art für ein Schulprojekt brauche. Nun bringe ich dieses hübsche kleine Skript aber einfach nicht zum laufen. Desshalb wollte ich euch fragen, ob ihr es kurz durchschauen könntet, um mir nacher einen kleinen Hinweis auf Unvollständigkeiten zu geben.

Noob-Skript:

(define (script-fu-image-convert image drawable)
(gimp-file-load 1 "C:\bild.jpg" "C:\bild.jpg")
(gimp-image-scale image 240 320)
(file-ppm-save 1 image drawable "C:\bild.ppm" "C:\bild.ppm" 0)
)

(script-fu-register
"script-fu-image-convert"
"<Toolbox>/Xtns/Script-Fu/Misc/KUKA konverter..."
"preconverting for the svg converter"
"Simon Kogler"
"copyright 2008, Simon Kogler"
""
""
SF-IMAGE
SF-DRAWABLE

)Der Angezeigte Fehler lautet: Error: not enough arguments

Vielen Dank und mit freundlichen Grüssen
kocobloc

schumaml
19.09.2008, 18:08
Ich sehe schon für den Fall "JPEG->PPM, skaliert" nicht die Notwendigkeit eines Skripts in GIMP (dafür würde ich Imagemagick nehmen), und auch den Fall "JPEG->SVG" (die Beschreibung deutet so etwas an) würde ich gleich anders abwickeln (mit Inkscape), aber deinem Skript fehlen in jedem Fall die Parameter SF-IMAGE und SF-DRAWABLE in script-fu-register. (Basic Scheme Tutorial, Abschnitt 6.1 (http://www.gimp.org/tutorials/Basic_Scheme/))

kocobloc
19.09.2008, 23:08
also erst mal danke für die antwort!

und zu deinen restlichen anregungen muss ich dir wohl erst mein projekt genauer erläutern:

wir haben einen kuka 6-achsen roboter der malen kann (er hat ein whiteboard und filzer im greifer. wir haben jetzt das projekt gefasst diesem roboter portraitieren beizubringen. folgendermassen haben wir uns das vorgestellt:
1. es wird ein foto gemacht
2. das foto wird von svg in ppm umgewandelt und skaliert (via batchfile)
3. wird das foto via autotrace (auch von diesem batchfile aus damit alles automatisiert ist) in eine sehr vereinfache svg datei umgewandelt.
4. diese svg datei wird mit einem selbstgestrickten programm in die robotersprache übersetzt
5. der roboter malt das ganze


nun ich hoffe damit ist die situation genauer beschrieben

dann hast du ja noch erwähnt es fehlten die sf dinger =) ich werde das gleich mal probieren =D danke

-> das hat so wieder die gleiche fehlermeldung ausgegeben... nehm mal an ich habs falsch gemacht. ich werde aber heute nicht mehr grossartig was dran machen ich schaus mir dann nächste woche nochmal genauer an, vielen dank nochmal für die hilfe...

houz
20.09.2008, 02:34
Wenn der ganze Ablauf quasi-automatisiert ablaufen soll, ist ein GIMP-Script eher nicht das Gelbe vom Ei - da wäre ImageMagick in der Tat geeigneter.

kocobloc
20.09.2008, 02:53
werde mir das mal ansehen, dankeschön

klaus_harrer
20.09.2008, 16:02
Hallo

Ich finde es nicht gut das ständig andere Tools empfohlen werden.
Hier eine Lösung des Problems:


(define(script-fu-image-convert image drawable)
(gimp-file-load 1 "C:\bild.jpg" "C:\bild.jpg")
(gimp-image-scale image 240 320)
(file-ppm-save 1 image drawable "C:\bild.ppm" "C:\bild.ppm" 0)
)

(script-fu-register
"script-fu-image-convert"
"KUKA konverter..."
"preconverting for the svg converter"
"Simon Kogler"
"2008, Simon Kogler"
"copyright 2008, Simon Kogler"
"*"
SF-IMAGE "The Image" 0
SF-DRAWABLE "The Drawable" 0
)
(script-fu-menu-register "script-fu-image-convert"
"<Toolbox>/Xtns/Script-Fu/Misc/"
)


MfG
Klaus Harrer

houz
20.09.2008, 20:41
Es geht nicht darum, andere Tools zu empfehlen, sonder nicht den Fehler mit dem Hammer und den Nägeln zu machen. Sicher kann man GIMP auch im Batch-Betrieb nutzen, aber es ist weder dafür gedacht, noch sonderlich effizient. Also getreu dem Motto "Für jedes Problem das passende Tool" wird bei solchen Aufgaben eben meist auf ImageMagick verwiesen.

schumaml
20.09.2008, 21:20
Ich finde es nicht gut das ständig andere Tools empfohlen werden.

... wie wird das dann werden, wenn hier GEGL als eigenständige Bibliothek empfohlen wird? ;)

klaus_harrer
21.09.2008, 09:51
Sicher kann man GIMP auch im Batch-Betrieb nutzen, aber es ist weder dafür gedacht, noch sonderlich effizient.

Woher nimmst du denn diese Erfahrung.
Script-Fu wird natürlich nicht nur für den Batch-Betrieb benutzt sondern um gewisse Arbeitsschritte zu automatisieren und dann das Bild weiter zu bearbeiten.


MfG
Klaus Harrer

houz
21.09.2008, 15:22
Im konkreten Fall geht es aber darum, dass ein Roboter gesteuert werden soll. Und das möglichst ohne Menschliche Interaktion: Foto machen, Auftrag geben, warten, staunen.
Dass ScriptFu nur für den Batch-Betrieb genutzt würde habe ich nirgends behauptet, nur dass es nicht sehr effizient ist, für Aufgaben, die mit anderen Tools trivial zu erledigen sind, jedesmal ein GIMP-Script zu schreiben. Über die Ausführungszeiten der beiden Programm habe ich da noch nicht mal nachgedacht.

kocobloc
21.09.2008, 16:29
wow schön dass hier so aktiv mitdiskutiert wird =D ich wollte mich nur kurz melden werde mir aber imagemagick wie auch dieses script genauer ansehen müssen, danke.

kocobloc
21.09.2008, 16:46
soo ich hab jetzt mal das image magick display installiert mir ist aber noch nicht bewusst wie man mit diesem tool 1. via batch datei was machen kann und 2. wie skalieren sowie ins ppm format umwandeln funktioniert =D also alles in allem raff ich noch ganz und gar nichts... dafür konnt ich das bild spiegeln und aufn kopf stellen was ja auch ganz lustig ist ;)

kocobloc
21.09.2008, 16:57
jetzt hab ich auch klaus harrer's script zum laufen gebracht (zumindest von der Gimp oberfläche aus) waren noch einige kleine änderungen nötig aber im grossen und ganzen wunderbar =D danke.

jetzt werde ich noch versuchen das ganze von einer batch datei aus zu steuern und wenn das klappt ist erst mal gut xD.

mfg kocobloc

klaus_harrer
21.09.2008, 21:23
Hallo kocobloc

Mich würden die kleinen Änderungen interessieren.

MfG
Klaus Harrer

kocobloc
21.09.2008, 21:55
(define(script-fu-image-convert image drawable)
(gimp-file-load 1 "C:/test/bild.jpg" "C:/test/bild.jpg")
(gimp-image-scale image 240 320)
(file-ppm-save 1 image drawable "C:/test/bild.ppm" "C:/test/bild.ppm" 0)
)

(script-fu-register
"script-fu-image-convert"
"KUKA konverter..."
"preconverting for the svg converter"
"Simon Kogler"
"2008, Simon Kogler"
"copyright 2008, Simon Kogler"
"*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
)
(script-fu-menu-register "script-fu-image-convert"
"<Toolbox>/Xtns/Script-Fu/Misc/"
)

dein code:

(define(script-fu-image-convert image drawable)
(gimp-file-load 1 "C:\bild.jpg" "C:\bild.jpg")
(gimp-image-scale image 240 320)
(file-ppm-save 1 image drawable "C:\bild.ppm" "C:\bild.ppm" 0)
)

(script-fu-register
"script-fu-image-convert"
"KUKA konverter..."
"preconverting for the svg converter"
"Simon Kogler"
"2008, Simon Kogler"
"copyright 2008, Simon Kogler"
"*"
SF-IMAGE "The Image" 0
SF-DRAWABLE "The Drawable" 0
)
(script-fu-menu-register "script-fu-image-convert"
"<Toolbox>/Xtns/Script-Fu/Misc/"
)

1. konnte er die backslashes nicht gebrauchen
2. hatte ich das ganze ja nur image und nicht The Image genannt

auf jeden fall funzt das jetzt nur mit der batch datei komm ich noch nich zurecht...

klaus_harrer
22.09.2008, 06:28
Hallo kocobloc


1. konnte er die backslashes nicht gebrauchen
2. hatte ich das ganze ja nur image und nicht The Image genannt


1. Ein Windows Problem(kann ich nicht nachvollziehen nutze ausschließlich Linux).
2. Wie du es bezeichnest ist völlig egal du kann es auch "Backpflaume" nennen, es hat nichts mit der Variable "image" zu tun. Es wird später grafischen Oberfläche als Menu angezeigt.

MfG
Klaus Harrer

kocobloc
22.09.2008, 07:35
jap wird wohl ein windows problem gewesen sein =) danke nochmal für den crashkurs ich denk ich blick jetzt son bissel durch... auch noch vielen dank an die anderen teilnehmer die hier fleissig geholfen haben! ich denke das thema ist soweit erledigt.

vielen dank
kocobloc

*close*

kocobloc
24.09.2008, 16:55
also das script hatte ja funktioniert, nun hab ich es im batchmode versucht und der sagt zwar es sei "executed successfully" aber das ausgangsfile ist nicht auffindbar =//

script:
(define(konverter image drawable)
(gimp-file-load RUN-NONINTERACTIVE "C:/test/bild.jpg" "C:/test/bild.jpg")
(gimp-image-scale image 180 240)
(file-ppm-save RUN-NONINTERACTIVE image drawable "C:/test/test.ppm" "C:/test/test.ppm" 1)
)

batch-file:
C:\Programme\GIMP-2.0\bin\gimp-2.4.exe -i -b "konverter" -b "(gimp-quit 0)"

ich find den fehler einfach nicht es sieht alles perfekt aus ;)
leuchtet da evtl bei jemandem eine Leuchte oder so? ich raffs nicht :)
mfg kocobloc

PS: wenn das script im batchmodus ausgeführt wird ist meines wissens keine registrierung nötig desshalb ist das script um einiges kürzer

houz
25.09.2008, 18:21
Eigentlich sollte das so gehen:

convert Original.jpg -scale 240x320 Ausgabe.ppm

Kann auch sein, dass man statt -scale ein -size benutzen muss - das eine geht nur in Schritten oder so, habe das schon länger nicht mehr benutzt.

lox2eagle
25.09.2008, 20:40
nimm -resize statt -scale ;)

-resize 320x320

brächte alle Bilder mit einem Seitenverhältnis von 4:3 auf 320×240 und auch hochformatige nach 320×240 Pixel.

kocobloc
25.09.2008, 21:14
nein alle bilder müssen auf 3 zu 4 gebracht werden sonst zeichnet der roboter ins leere :)

aber hat noch einer eine idee wie das (http://www.gimpforum.de/showthread.php?p=90979#poststop) gelöst werden könnte?