ForumShellscript für convert
Abdul Hakim – Samstag, 20. Mai 2006 21:47 Uhr

Hallo, zur Image Magic gehöhrt das Programm convert. Ich habe mir ein script gebastelt, um schnell mehre Dateien zu konvertieren:
–snip–
#!/bin/bash
mkdir bla;
convert -verbose -size 160×120 -quality 35% “*.jpg” “bla/*.jpg”;
exit 0;
–snap–
Jetzt möchte ich gerne einen Namen für die Bilderserie vergeben mit fortlaufenden Nummer z.B. bild1.jpg, bild2.jpg usw. Wie geht das ?

Danke
ahakim

1 Antwort
Ottfried Meyer – Sonntag, 21. Mai 2006 01:20 Uhr

Hi,

(vorweg: Probier mal statt der bash die zsh als Shell!
Mittlerweile möchte ich auf deren Features nicht mehr
verzichten :) …das aber nur so am Rande… :O)))

Also….
Das, was Du suchst, nennt sich “Aritmetic Expansion”
(man bash…). Und das geht so: :)

— snip —
#!/bin/sh
if [ -z $# ]
then
echo
echo “usage: myconvert “
echo “run script in source directory”
echo
exit 0
fi
DIR=$1
SERIES=$2
COUNTER=1
for i in *.jpg
do
FN=$( basename ${i} .jpg )
convert ${i} ${DIR}/${FN}-${SERIES}-${COUNTER}.jpg
counter=$(( ${COUNTER} + 1 ))
done
— snip —

Zur Erklärung (nehmem wir mal an, das Script hieße “myconvert”:

Zeile Erklärung
1 Name des Scriptinterpreters. /bin/sh startet jede sh-kompatible
Shell des Systems, also neben bash auch zsh, falls vorhanden :)
2-9 Wenn kein Parameter angegeben wurde: Bedienungsanleitung ausgeben
und ohne Fehler (exit-Wert = 0) beenden.
10 Als ersten Parameter des Scripts wird das Zieldirektory der Variablen
DIR übergeben
11 Als zweiter Parameter wird Name der Serie der Variablen SERIES über-
geben
12 Zähler mit dem Variablennamen “COUNTER” initialisieren
13-14 Für alle Dateien mit der Extension “.jpg”
15 Vom aktuellen Dateinamen den Pfad und die Extension entfernen
16 Kommandozeile aufbauen:
Wurde zum Beispiel das Script so aufgerufen:
myconvert bla sport
so enstehen Dateien im Verzeichnis ./bla/. mit den Namen
Source: Tor.jpg Target: Tor-sport-1.jpg
Ecke.jpg Ecke-sport-2.jpg
usw…
17 Zähler hochzählen
18 Schleifenende

**BITTE** das Teil erst an einem Testdirectory mit Testbildern ausprobieren.
Falls ich einen Fehler gemacht haben sollte, möchte ich nicht Schuld haben,
dass Deine Urlaubsbilder nun alle 1.jpg heißen ;)

Falls noch Fragen offen sind, bitte posten!
Viel Erfolg,
mcc

PS: Bildkonvertierungen: Sieh’ Dir mal die Programme

Graphicsmagick
Greycstoration und
ale

an :O)

Abdul Hakim – Sonntag, 21. Mai 2006 10:45 Uhr

Super ! Danke vielmals !
Mach schon ein bißchen mehr wie Urlaubsbilder ;-)

Ottfried Meyer – Sonntag, 21. Mai 2006 15:06 Uhr

Hi,

:)
“Sie wollen mehr als immer nur Urlaubsbilder? Dann….”
:O))

…speziell dann solltest Du einen scharden Blick auf Greystoratoration werfen!
Gibt es als Bestandteil der CImp-Lib als Beispielprogramm hier:

http://cimg.sourceforge.net/

Meiner digitalen Kompaktcamera hat es ein gutes Stück Rauschen genommen…

Das Teil kann aber noch mehr…

Viel Erfolg!
mcc