Udoskonaliłem skrypt przez dodanie możliwość ustawienia Jakość obrazu :P
!/bin/bash
# przeskalowuje obrazki hurtem. Wersja alfa.alfa.
#Rozdzielczosc Obrazu
nx=800
ny=600
#Jakosc Obrazu
xx=100
DIR=`pwd`
DIR=`basename $DIR`
mkdir ../$DIR.01
if [ $? -ne 0 ]; then
echo "Błąd mkdir"; exit
fi
for f in *
do
size=`identify "$f" | awk '{ print $3 }'`; export size
x=`perl -e '($x, $y) = split(/x/,$ENV{"size"}); print "$x\\n";'`
y=`perl -e '($x, $y) = split(/x/,$ENV{"size"}); print "$y\\n";'`
nf=../$DIR.01/"$f"
if [ $x -gt $y ]; then
cmd='convert '"$f"' -quality '$xx' -scale '$nx'x'$ny' '$nf
else
cmd='convert '"$f"' -quality '$xx' -scale '$ny'x'$nx' '$nf
fi
echo $size' -> '$cmd
eval $cmd
touch -r $f $nf
done
Dzięki za Pomoc.... :)
Proszę pomoc w napisaniu jeszcze jednego skryptu (oczywiście mogę za niego zapłacić)
Podobnego do tego aby masowo modyfikował Czasu Pliku odczytując go z exifa....
1. Pobierał informacje o dacie i godzinie pliku
np. identify -verbose * | grep "exif:DateTime:"
2. Nadawało datę z exifa
np. "touch -d 20110213
Można też w samym Bashu dopasować czas z "identify" do wyrażenia regularnego i użyć dopasowań do przekształcenia na czas dla "touch":
exif:DateTime: 2011:10:03 15:41:29
regexp='DateTime: ([0-9]+):([0-9]+):([0-9]+) ([0-9:]+)'
if [[ "$output" =~ $regexp ]]; then
yyyy="${BASH_REMATCH[1]}"
mm="${BASH_REMATCH[2]}"
dd="${BASH_REMATCH[3]}"
time="${BASH_REMATCH[4]}"
...
fi