Kolya Bokow: gimp mit system ();

Hallo,

ich möchte gerne gimp (http://www.gimp.org) in perl-Skripts anwenden. Das Programm wird im batch-Modus aufgerufen und der Aufruf müsste ungefähr so aussehen:

$status = system("gimp -i -d -b '(script-fu-scalebmp 400 300 "input.bmp" "output.bmp")' '(gimp-quit 0)'") or die "$! \n";

Nun habe ich das Problem, dass gar nichts aufgerufen wird. Was mache ich in diesem Befehl falsch?

ps: der Aufruf vom gimp-Befehl funktioniert im Terminal
pps: bitte kein ImageMagick vorschlagen - es geht hier nur um gimp!

  1. $status = system("gimp -i -d -b '(script-fu-scalebmp 400 300 "input.bmp" "output.bmp")' '(gimp-quit 0)'") or die "$! \n";

    Nun habe ich das Problem, dass gar nichts aufgerufen wird. Was mache ich in diesem Befehl falsch?

    Vermutlich, zumindest ist es bei ImageMagick so, musst du hier den vollständigen Pfad angeben.

    Struppi.

    1. Vermutlich, zumindest ist es bei ImageMagick so, musst du hier den vollständigen Pfad angeben.

      Ich übergebe den kmplete In/Out Pfad und trotzdem keine Verbeserung.

      1. Vermutlich, zumindest ist es bei ImageMagick so, musst du hier den vollständigen Pfad angeben.

        Ich übergebe den kmplete In/Out Pfad und trotzdem keine Verbeserung.

        Wenn du system mal mit print vertauscht, wie sieht dann den der konkrete Code aus?

        Struppi.

        1. Wenn du system mal mit print vertauscht, wie sieht dann den der konkrete Code aus?

          So:

          8<-------------------8<

          gimp -i -d -b '(script-fu-scalebmp 400 300 "/home/user/bilder/20060216031944.bmp" "/home/user/bilder/xxx.bmp")' '(gimp-quit 0)'

          8<-------------------8<

          1. So:

            8<-------------------8<

            gimp -i -d -b '(script-fu-scalebmp 400 300 "/home/user/bilder/20060216031944.bmp" "/home/user/bilder/xxx.bmp")' '(gimp-quit 0)'

            8<-------------------8<

            Das sieht doch schon mal gut aus, ich kenn mich aber nicht mit gimp aus, sind die Sachen innerhalb der einfachen Anführungszeichen OK, das ist keine übliche Schreibweise.

            und hast du auch mal eine Dateiprüfung gemacht?
            die "existiert nicht" unless -e "/home/user/bilder/20060216031944.bmp";

            kann gimp mit Bitmaps umgehen?
            Oder musst du da eine Konvertierung vorschalten?

            Struppi.

            1. Das sieht doch schon mal gut aus, ich kenn mich aber nicht mit gimp aus, sind die Sachen innerhalb der einfachen Anführungszeichen OK, das ist keine übliche Schreibweise.

              Es ist ok, so muss es sein. Beispiel kommt aus dieser Quelle: http://gug.sunsite.dk/tutorials/tomcat17/ und wurde von mir selbst erfolgreich getestet.

              und hast du auch mal eine Dateiprüfung gemacht?

              In meinem Fall teste ich das ganze mit den existierenden Dateinamen etc. Das schließe ich zuerst aus.

              kann gimp mit Bitmaps umgehen?

              Es ist auch kein Thema. Ich befürchte aber, dass ich mein Skript über html/cgi aufrufe und da was an Rechten hackt.

              Kann ich irgendwie eine Abfrage machen, die mir dann sagt, ob der Befehl gimp überhaupt existiert? Es könnte auch sein, dass die PATH-Variable beim Server falsch ist...

              1. Kann ich irgendwie eine Abfrage machen, die mir dann sagt, ob der Befehl gimp überhaupt existiert? Es könnte auch sein, dass die PATH-Variable beim Server falsch ist...

                oder das gimp gar nicht installiert ist?

                Struppi.

                1. oder das gimp gar nicht installiert ist?

                  Der ist auf jeden Fall da, nur unter /opt/bin

                  Ich versuche gerade gleich:

                  ln -s /usr/bin/gimp /opt/bin/gimp

                  zu erzeugen...

                  1. ln -s /usr/bin/gimp /opt/bin/gimp

                    umgekehrt:)

                    ln -s /opt/bin/gimp /usr/bin/gimp

                    und es bringt auch nichts... :(