#!/bin/bash
# Skrevet i BASH-script af Kåre Janussen.
#
# MODIFICERET UDGAVE!
#
# Dette script konverterer jpg-billeder ved hjælp af
# pakken ImageMagick til billeder med højde 600px og 75px
# samt med bredde 160px.
# Kan også klare andre formater, som brugeren måtte angive.
# Alle filnavne i $PWD ændres til små bogstaver.
# Hvis scriptet køres uden parameter, lægges de konverterede
# 600px- og 75px-jpg-billeder i $PWD, og 160px-jpg-billederne
# lægges i $PWD/randompics.
#
# Angives én parameter "foo", oprettes et bibliotek "$PWD/foo",
# og de konverterede 600px- og 75px-jpg-billeder lægges deri,
# mens 160px-jpg-billederne lægges i $PWD/foo/randompics.
#
# Angives to parametre "foo" "bar", oprettes et bibliotek "$PWD/foo",
# og de konverterede filer af billedformatet "bar" (f.eks. png)
# lægges deri.
# BEMÆRK: Ønskes et alternativt format angivet, SKAL dette gøre i
# parameter nr. 2, og destinationsbibliotek (evt. ".") angives i
# parameter nr. 1!
# chmod +x imgconvert.sh
# Kør scriptet fra billedbiblioteket.
# Konverterer først navne på filerne i $PWD til lowercase.
for filename in *; do
newname=`echo "$filename/" | tr '[:upper:]' '[:lower:]'`
newname=${newname%/}
[[ $filename == $newname ]] || mv "$filename" "$newname"
done
echo "Filnavne konverteret til minuskler"
if [ -n "$2" ]; then
suffix=".$2" # alternativt billedformat angivet af brugeren
else
suffix=".jpg" # jpg er default
fi
# hvis ingen billeder af det valgte format findes:
if [ -z "`ls *$suffix 2> /dev/null`" ]; then
echo "Ingen ${suffix#.}-filer at konvertere i dette bibliotek!"
exit 0
fi
# hvis et destiationsbibliotek er angivet, oprettes det, såfremt
#+intet bibliotek eller fil af dette navn findes i forvejen:
if [ -n "$1" ] && [ "$1" != "." ]; then
if [ -e "$1" ]; then
echo "$1 eksisterer allerede. Vælg et andet navn!"
exit 0
fi
mkdir "$1"
mkdir "$1/randompics"
else
mkdir randompics
fi
# billeder konverteres og flyttes evt. til destinationsbibliotek:
for file in *$suffix; do
echo "Konverterer $file"
convert -scale x600 "$file" "${file%$suffix}-600$suffix"
convert -scale x75 "$file" "${file%$suffix}-lille$suffix"
convert -scale 160 "$file" "${file%$suffix}-160$suffix"
if [ -n "$1" ] && [ "$1" != "." ]; then
mv "${file%$suffix}-600$suffix" "$1"
mv "${file%$suffix}-lille$suffix" "$1"
mv "${file%$suffix}-160$suffix" "$1/randompics"
else
mv "${file%$suffix}-160$suffix" "randompics"
fi
done
echo "De konverterede billeder befinder sig nu i $PWD/$1"
exit 0