Shell Script zur Stapelverarbeitung von Bildern

stp

stp

Absoluter Linux-NooB
Hallo zusammen,

ich bin neu hier im Forum und absoluter Linux-Einsteiger.

In letzer Zeit habe beschäftige ich mich ausgiebiger mit dem Thema Linux, da ich einige Tools für das Modding von Android-Phones erstellen möchte.

Nun habe ich ein kleines Problem, bei dem ich euch um eure Hilfe bitte:

Mit Hilfe von einigen HowTo's habe ich ein ShellScript erstellt, mit dem man *.png Grafiken in *rle-Dateien konvertieren kann - es funktioniert auch. :))
Nun würde ich gerne haben, dass das Tool eine Konvertierung startet, bei der es alle Dateien aus einem bspw. "in"-Ordner nacheinander in einen "out"-Ordner abarbeitet. Die Dateibezeichnung soll dabei keine Rolle spielen.

Hier mal das einfache Script:
Code:
#! /bin/sh
convert -depth 8 logo.png rgb:logo.raw
./to565 -rle < logo.raw > logo.rle
rm -r logo.raw


Ich hoffe ihr könnt mir dabei weiterhelfen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EDIT:

Hab einen Weg zur Realisierung gefunden. ;)

Mittels 3 for-Schleifen läuft das Script, wie es soll!


Danke & Gruß stp
 
Zuletzt bearbeitet:
poste die Lösung doch mal - weil wieso man da if-Schleifen (was immer das sein soll...) dafür braucht sehe ich mal so rein gar nicht.

Ich hätte eher eine Lösung mit find realisiert...
 
üblicherweise würde man für sowas auch eher find verwenden. Ich denk da an sowas, wie

Code:
find . -name *\.png -exec convert -depth 8 {} rgb:logo.raw ; ./to565 -rle < logo.raw > out/$(basename {} .png).rle \;
 
......weil wieso man da if-Schleifen (was immer das sein soll...) .....

Sorry, ich meinte natürlich for-Schleifen :o

Ich habe es jetzt so gelöst - vielleicht umständlich, aber es funktioniert. ;)

Code:
#! /bin/sh
cd PNG_Folder/
for f in *.png
do 
if [ -f "${f}" ]; then
echo $f 'in Berarbeitung'
convert -depth 8 $f rgb:../RLE_Folder/$f.raw
else 
echo 'Sorry - keine PNG-Datei gefunden'
sleep 5
exit
fi
done

cd ..
cd RLE_Folder/

for b in *.raw
do 
../tools/to565 -rle < $b > $b.rle
done

rm -r *.raw

for i in *.rle
do mv -f $i $(echo $i | sed "s/\.png.raw//g")
done

echo 'Konvertierung abgeschlossen'
sleep 5
exit
 

Ähnliche Themen

*.jpg.* mittels shell sript umbennen

Zurück
Oben