Hallo, nachdem es mit nicht gelungen ist, mit dvd-slideshow Bilder mit einem transparenten Hintergrund zu scrollen, habe ich jetzt einfach mal die roll-Option von ImageMagick probiert. Damit funktioniert es. Der einzige Haken: Hundert und mehr Bilder auf diese Weise zu erstellen, ist mehr als mühsam. Also würde ich das gerne mit einem Bash-Script erledigen. Ausgangspunkt ist die folgende Kommandozeile: convert bild.png -roll -1+0 bild-roll-1.png Enden soll es irgendwo bei convert bild.png -roll -100+0 bild-roll-100.png D.h. nach dem "roll" soll es schrittweise um jeweils 1 hochzählen. Leider habe ich noch nicht einmal eine Idee, wie ich vorgehen könnte :-( Achso, Leerstellen und Sonderzeichen brauchen nicht berücksichtigt zu werden, weil ich die Bilder selber erstellen und Dateinamen bei mir grundsätzlich keine Leer- und Sonderzeichen erhalten. Beste Grüße, Heinz. -- Buchsatz für Autoren. Vom Manuskript zum Buch www.pahlke-online.de Reiseführer und Reiseberichte: www.erlebnis-osteuropa.de Barrierefreies Webdesign: www.Pahlke-KunstWebDesign.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag, 19. Oktober 2009 10:23:53 schrieb Heinz W. Pahlke:
Hallo,
nachdem es mit nicht gelungen ist, mit dvd-slideshow Bilder mit einem transparenten Hintergrund zu scrollen, habe ich jetzt einfach mal die roll-Option von ImageMagick probiert. Damit funktioniert es.
Der einzige Haken: Hundert und mehr Bilder auf diese Weise zu erstellen, ist mehr als mühsam. Also würde ich das gerne mit einem Bash-Script erledigen.
Ausgangspunkt ist die folgende Kommandozeile:
convert bild.png -roll -1+0 bild-roll-1.png
Enden soll es irgendwo bei
convert bild.png -roll -100+0 bild-roll-100.png
D.h. nach dem "roll" soll es schrittweise um jeweils 1 hochzählen. Leider habe ich noch nicht einmal eine Idee, wie ich vorgehen könnte
#!/bin/sh i=1 while [ $i -lt 11 ] ; do echo "convert bild.png -roll $i+0 bild-roll-$i.png" i=`expr $i + 1` done Das macht im Moment nur eine Textausgabe mit zehn Wiederholungen auf der Shell und sonst nichts. Wenn das so passt, musst du nur noch die Zahl erhöhen (101 statt 11) und das Ganze scharf schalten. Statt echo "convert bild.png -roll $i+0 bild-roll-$i.png" schreibst du dann: `convert bild.png -roll $i+0 bild-roll-$i.png` Jürgen -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag, 19. Oktober 2009 10:38:58 schrieb Juergen Langowski:
echo "convert bild.png -roll $i+0 bild-roll-$i.png"
Ich sehe gerade, dass da noch ein - fehlte. Statt echo "convert bild.png -roll $i+0 bild-roll-$i.png" müsste es wohl heißen: echo "convert bild.png -roll -$i+0 bild-roll-$i.png" Also überprüfe das lieber noch mal genau, ob auch alles stimmt. Am besten mit ein paar Kopien, die du nicht vermisst, falls was schief geht ... Jürgen -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mon, 19 Oct 2009, Juergen Langowski schrieb
#!/bin/sh
i=1
while [ $i -lt 11 ] ; do
echo "convert bild.png -roll $i+0 bild-roll-$i.png"
i=`expr $i + 1`
done
Das macht im Moment nur eine Textausgabe mit zehn Wiederholungen auf der Shell und sonst nichts. Wenn das so passt, musst du nur noch die Zahl erhöhen (101 statt 11) und das Ganze scharf schalten. Statt
echo "convert bild.png -roll $i+0 bild-roll-$i.png"
schreibst du dann:
`convert bild.png -roll $i+0 bild-roll-$i.png`
Vielen Dank :-) Nur noch als Ergänzung für das Archiv, dass es natürlich "-$i+0" (oder auch "+$i+0") heißen muss. Beste Grüße, Heinz. -- Buchsatz für Autoren. Vom Manuskript zum Buch www.pahlke-online.de Reiseführer und Reiseberichte: www.erlebnis-osteuropa.de Barrierefreies Webdesign: www.Pahlke-KunstWebDesign.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Heinz! Heinz W. Pahlke schrieb am Montag, den 19. Oktober 2009:
Ausgangspunkt ist die folgende Kommandozeile:
convert bild.png -roll -1+0 bild-roll-1.png
Enden soll es irgendwo bei
convert bild.png -roll -100+0 bild-roll-100.png
bash: for i in {1..100}; do convert bild.png -roll -${i}+0 bild-roll-${i}.png; done Mit freundlichen Grüßen Christian -- :wq -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Christian, Am Mon, 19 Oct 2009, Christian Brabandt schrieb
bash: for i in {1..100}; do convert bild.png -roll -${i}+0 bild-roll-${i}.png; done
Danke auch noch an dich für deinen Vorschlag. Wenn ich die Lösungen lese, denke ich immer, darauf hätte ich auch kommen müssen. Aber was hilft ein "hätte, können, müssen" ... Beste Grüße, Heinz. -- Buchsatz für Autoren. Vom Manuskript zum Buch www.pahlke-online.de Reiseführer und Reiseberichte: www.erlebnis-osteuropa.de Barrierefreies Webdesign: www.Pahlke-KunstWebDesign.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mon, 19 Okt 2009, Heinz W. Pahlke schrieb:
Der einzige Haken: Hundert und mehr Bilder auf diese Weise zu erstellen, ist mehr als mühsam. Also würde ich das gerne mit einem Bash-Script erledigen.
Ausgangspunkt ist die folgende Kommandozeile:
convert bild.png -roll -1+0 bild-roll-1.png
Enden soll es irgendwo bei
convert bild.png -roll -100+0 bild-roll-100.png
==== #!/bin/bash i=1 while test $i -le 100; do t="$(printf 'bild-roll-%03i.png' $i)" ## statt continue ggfs. was anderes (break, exit) verwenden oder ## die Zeile ganz weglassen, dann kann man das "$(printf ..)" auch ## direkt in den convert-Aufruf reinschreiben. test -e "$t" || { echo "$t existiert" >&2; continue; } convert bild.png -roll "-${i}+0" "$t" i=$(( i+1 )) done ==== -dnh -- "All mushrooms are edible. However, some of them only once" -- Ino!~ -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo David, Am Mon, 19 Oct 2009, David Haller schrieb
==== #!/bin/bash i=1 while test $i -le 100; do t="$(printf 'bild-roll-%03i.png' $i)" ## statt continue ggfs. was anderes (break, exit) verwenden oder ## die Zeile ganz weglassen, dann kann man das "$(printf ..)" auch ## direkt in den convert-Aufruf reinschreiben. test -e "$t" || { echo "$t existiert" >&2; continue; } convert bild.png -roll "-${i}+0" "$t" i=$(( i+1 )) done ====
Wieder einmal eine deiner perfekten Lösungen :-) Vielen Dank und beste Grüße, Heinz. -- Buchsatz für Autoren. Vom Manuskript zum Buch www.pahlke-online.de Reiseführer und Reiseberichte: www.erlebnis-osteuropa.de Barrierefreies Webdesign: www.Pahlke-KunstWebDesign.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Don, 22 Okt 2009, Heinz W. Pahlke schrieb:
Hallo David,
Am Mon, 19 Oct 2009, David Haller schrieb
==== #!/bin/bash i=1 while test $i -le 100; do t="$(printf 'bild-roll-%03i.png' $i)" ## statt continue ggfs. was anderes (break, exit) verwenden oder ## die Zeile ganz weglassen, dann kann man das "$(printf ..)" auch ## direkt in den convert-Aufruf reinschreiben. test -e "$t" || { echo "$t existiert" >&2; continue; }
^^ Das muß natürlich ein '&&' sein! *UUUPS*
convert bild.png -roll "-${i}+0" "$t" i=$(( i+1 )) done ====
Wieder einmal eine deiner perfekten Lösungen :-)
Leider nein ;) -dnh -- In the Beginning there was nothing, which exploded. -- Terry Pratchett, Lords and Ladies -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, On Monday 19 October 2009 12:49:26 David Haller wrote:
#!/bin/bash i=1 while test $i -le 100; do t="$(printf 'bild-roll-%03i.png' $i)" ## statt continue ggfs. was anderes (break, exit) verwenden oder ## die Zeile ganz weglassen, dann kann man das "$(printf ..)" auch ## direkt in den convert-Aufruf reinschreiben. test -e "$t" || { echo "$t existiert" >&2; continue; } convert bild.png -roll "-${i}+0" "$t" i=$(( i+1 )) done
Oder noch etwas bashiger: :) #!/bin/bash declare -i i=1 while ((i <= 100)); do t=$(printf 'bild-roll-%03u.png' $i) if [ -e "$t" ]; then echo "$t existiert" >&2 else convert bild.png -roll "-${i}+0" "$t" fi ((i++)) done Roman -- Roman Fietze Telemotive AG Büro Mühlhausen Breitwiesen 73347 Mühlhausen Tel.: +49(0)7335/18493-45 http://www.telemotive.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Roman! On Fr, 23 Okt 2009, Roman Fietze wrote:
Oder noch etwas bashiger: :)
Wozu unportabler? David's Script sollte auch in jeder anderen Shell funktionieren, wenn ich das richtig gesehen habe. Mit freundlichen Grüßen Christian -- :wq -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Christian, On Friday 23 October 2009 09:14:10 Christian Brabandt wrote:
Wozu unportabler?
Weil Bashscripte IMHO meist "etwas" lesbarer sind als Bourne Shell Scripte, speziell bei Command Substitution, Tests, Arithmetic?
David's Script sollte auch in jeder anderen Shell funktionieren, wenn ich das richtig gesehen habe.
Aber nur mit dieser ersten Zeile: #!/bin/sh Zudem ist selbst der Titel des Threads "Bash-Script-Problem". Roman -- Roman Fietze Telemotive AG Büro Mühlhausen Breitwiesen 73347 Mühlhausen Tel.: +49(0)7335/18493-45 http://www.telemotive.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (5)
-
Christian Brabandt
-
David Haller
-
Heinz W. Pahlke
-
Juergen Langowski
-
Roman Fietze