X-Git-Url: http://git.scottworley.com/picsort/blobdiff_plain/9952a1a7aaa0eb9254668d70b69d845f5f2fd984..a05e21670fd3fd2d8e0de963a21ec871b6725f52:/pics-preprocess diff --git a/pics-preprocess b/pics-preprocess index 87eca8c..9d0b42f 100755 --- a/pics-preprocess +++ b/pics-preprocess @@ -1,27 +1,44 @@ -#!/bin/bash +#!/usr/bin/env bash -# Pass .NEF files as $@. -# This makes many variants of each one at different exposure levels. +# Pass .NEF and .jpeg files as $@. +# This makes many variants of each .NEF file at different exposure levels +# and makes reduced-size versions for faster browsing. + +MINFREESPACE=$((10 * 1024 * 1024)) # 10GiB in KiB -GREEN=1.105 -TEMPERATURE=5500 -JPEGCOMPRESSION=95 SMALLHEIGHT=700 +renice -n 19 $$ +ionice -c 3 -p $$ for f;do - for level in {10..30};do - mkdir -p {,sm/}"$level" - base="$(basename "$f")" - out="$level/${base%.NEF}.jpeg" - exposure=$(dc <<< "2k $level 4 / 3.5-p") # 10 to 30 -> -1 to 4 in .25 steps - ufraw-batch --out-type=jpeg \ - --green="$GREEN" \ - --temperature="$TEMPERATURE" \ - --compression="$JPEGCOMPRESSION" \ - --exposure="$exposure" \ - --output="$out" \ - "$f" - convert "$out" -geometry "x$SMALLHEIGHT" "sm/$out" - done + if (( "$(df -k . | awk 'NR == 2 { print $4 }')" < $MINFREESPACE ));then + echo "Out of disk space" + break + fi + if [[ "$f" == *.NEF ]];then + for level in {10..30};do + mkdir -p {,sm/}"$level" + base="$(basename "$f")" + out="$level/${base%.NEF}.jpeg" + if [[ -s "$out" ]];then + echo "Skipping $out" + else + exposure=$(dc <<< "2k $level 4 / 3.5-p") # 10 to 30 -> -1 to 4 in .25 steps + pics-run-ufraw "$exposure" "$f" "$out" + fi + if [[ -s "sm/$out" ]];then + echo "Skipping sm/$out" + else + convert "$out" -geometry "x$SMALLHEIGHT" "sm/$out" + fi + done + else + if [[ -s "sm/$f" ]];then + echo "Skipping sm/$f" + else + mkdir -p sm + convert "$f" -geometry "x$SMALLHEIGHT" "sm/$f" + fi + fi done