#!/bin/bash DCRAW=`which dcraw` ; if [ "$DCRAW" == "" ]; then echo "*** dcraw not found"; fi CJPEG=`which cjpeg` ; if [ "$CJPEG" == "" ]; then echo "*** cjpeg not found"; fi EXIFTOOL=`which exiftool` ; if [ "$EXIFTOOL" == "" ]; then echo "*** exiftool not found"; fi # default to use white-blance specified by camera RAWFLAG=w THISPROG=`basename $0` usage () { echo "Usage: $THISPROG [-a] input-file[s]" echo "makes JPEG(s) from the input .pef RAW file(s)" echo "using camera white-balance by default" echo "or automatic white-balance if -a flag given" } if [ ! "$1" ] ; then usage; exit 1; fi if [ "$1" == "-a" ] ; then RAWFLAG=a shift fi if [ "$DCRAW" == "" ] || [ "$CJPEG" == "" ] || [ "$EXIFTOOL" == "" ] ; then echo "*** [$0] conversion tool(s) missing: cannot process RAW file"; exit 1; fi # for INFILE in $* ; do # # OUTFILE=`echo $INFILE | sed 's/.pef/.jpg/'` # OUTFILE=`echo $INFILE | sed 's/\.pef\|\.cr2\|\.dng/.jpg/'` # if [ "$INFILE" == "$OUTFILE" ] ; then # echo "*** ERROR filename $INFILE not recognised" # exit 1 # fi # echo $THISPROG $INFILE '->' $OUTFILE # #echo $DCRAW -w -$RAWFLAG $INFILE # $DCRAW -$RAWFLAG -c $INFILE | cjpeg -quality 95 > $OUTFILE # # could use 'convert - outfile' instead of cjpeg # # $EXIFTOOL -overwrite_original -TagsFromFile $INFILE $OUTFILE 2>&1>/dev/null # done for INFILE in $* ; do # OUTFILE=`echo $INFILE | sed 's/.pef/.jpg/'` OUTFILE=`echo $INFILE | sed 's/\.pef\|\.cr2\|\.dng//'` if [ "$INFILE" == "$OUTFILE" ] ; then echo "*** ERROR filename $INFILE not recognised" exit 1 fi echo $THISPROG $INFILE '->' $OUTFILE #echo $DCRAW -w -$RAWFLAG $INFILE for FLAG in "-a" "-w" "" ; do $DCRAW $FLAG -c $INFILE | cjpeg -quality 95 > ${OUTFILE}$FLAG.jpg $EXIFTOOL -overwrite_original -TagsFromFile $INFILE ${OUTFILE}$FLAG.jpg 2>&1>/dev/null done done exit 0