Bash script to create EXIF information caption
Published February 11th, 2008 in Digital camera, PhotoMy bash shell scripting has gotten very rusty lately (and ugly), but it’s still good enough to have some fun. For my photo site I need a short program which creates a description string like "Shot with Canon PowerShot S3 IS at 63.9 mm (383.4 mm), 1/320 s, 100, Matrix, F3.5, Auto" from an image. Some shell scripting later I was done.
#!/bin/bash
DIR=$1
rm -rf $DIR/exif
mkdir $DIR/exif
for file in $DIR/*.JPG
do
file=`basename ${file}`
filename=${file/.JPG/}
output=${filename}_EXIF.txt
exiv2 $DIR/$file | awk '
BEGIN{FS=":"}
/model/{ model=$2}
/Focal length/{focal=$2}
/Exposure time/{exposure=$2}
/ISO/{iso=$2}
/Metering/{metering=$2}
/^Aperture/{aperture=$2}
/White/{wb=$2}
END{
printf (
"%s;%s;%s;%s;%s;%s;%s",
model,focal,exposure,iso,metering,aperture,wb
);
}'
| sed -e"s/\s\s*/ /g"
| sed -e "s/^\s//g"
| sed -e "s/;\s/;/g" > $DIR/exif/$output
IFS=";"
read model focal exposure iso metering aperture wb <<END
$(cat $DIR/exif/$output)
END
multiplier=1
if [ $model == "Canon PowerShot S3 IS" ]; then
multiplier=6
fi
focal_value=$(echo $focal | awk '{print $1}')
focal_equiv=$(echo "$focal_value * $multiplier" | bc -l)
echo "Shot with $model at $focal ($focal_equiv mm), $exposure, $iso, $metering, $aperture, $wb" > $DIR/exif/$output
done
No Responses to “Bash script to create EXIF information caption”
Please Wait
Leave a Reply