Files
dotfiles/.local/bin/raw2preview

53 lines
999 B
Bash
Executable File

#!/usr/bin/env bash
TAGS_TO_TRANSFER=(
-Orientation
-CreateDate
-ExposureTime
-FNumber
-ISO
-FocalLength
)
FOLDER="./JPGs"
extractRAW() {
[[ -n "$1" ]] || return
prev="$FOLDER/${1%.*}.JPG"
if [[ ! -e "$prev" ]]; then
exiftool -progress \
-b \
-PreviewImage \
"$1" \
> "$prev"
exiftool -overwrite_original \
-tagsFromFile="$1" \
"${TAGS_TO_TRANSFER[@]}" \
"$prev"
fi
}
mkdir -p "$FOLDER"
for file; do
[[ -f $file ]] || continue
mime="$(file -b --mime-type "$file")"
if [[ $mime = image/x-canon-cr2 ]]; then
extractRAW "$file"
elif [[ $mime = image/tiff ]]; then
prev="$FOLDER/${file%.*}.JPG"
[[ -e "$prev" ]] || convert "$file" "$prev"
elif [[ "$(head -1 "$file")" = "#Geeqie collection" ]]; then
while read line; do
extractRAW "$file"
done <"$(sed -E '/^#/d;s/(^"|"$)//g' "$file")"
else
>&2 printf "Unrecognized format: $file\n"
fi
done
rmdir "$FOLDER" >/dev/null 2>&1 || true