52 lines
971 B
Bash
Executable File
52 lines
971 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
TAGS_TO_TRANSFER=(
|
|
-Orientation
|
|
-CreateDate
|
|
-ExposureTime
|
|
-FNumber
|
|
-ISO
|
|
-FocalLength
|
|
)
|
|
|
|
extractRAW() {
|
|
[[ -n "$1" ]] || return
|
|
prev="./JPGs/${1%.*}.JPG"
|
|
if [[ ! -e "$prev" ]]; then
|
|
exiftool -progress \
|
|
-b \
|
|
-PreviewImage \
|
|
"$1" \
|
|
> "$prev"
|
|
exiftool -overwrite_original \
|
|
-tagsFromFile="$1" \
|
|
"${TAGS_TO_TRANSFER[@]}" \
|
|
"$prev"
|
|
fi
|
|
}
|
|
|
|
mkdir -p JPGs
|
|
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="./JPGs/${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 JPGs >/dev/null 2>&1 || true
|