dotfiles/bin/padjpeg

29 lines
962 B
Bash
Executable File

#!/usr/bin/env sh
set -e # exit on failure
IFS=$(printf '\n\t') # smarter ifs
test "$RATIOW" || RATIOW=16
test "$RATIOH" || RATIOH=9
imageh=$(identify -format %h "$1")
imagew=$(identify -format %w "$1")
des_ratio=$(printf '3 k %u %u / p' "$RATIOW" "$RATIOH" | dc)
img_ratio=$(printf '3 k %u %u / p' "$imagew" "$imageh" | dc)
wide="$(echo "$img_ratio > $des_ratio" | bc )"
if [ "$wide" -gt 0 ] ; then
mv "$1" ".$1_padjpegtmp.jpg"
jpegtran -rotate 90 -outfile "$1" ".$1_padjpegtmp.jpg"
imageh=$(identify -format %h "$1")
imagew=$(identify -format %w "$1")
des_ratio=$(printf '3 k %u %u / p' "$RATIOH" "$RATIOW" | dc)
fi
des_width=$(printf '1 k %f %u * p' "$des_ratio" "$imageh" | dc | cut -d. -f1)
offset=$(printf '%u %u - 2 / p' "$des_width" "$imagew" | dc)
jpegtran -crop "$des_width"f+"$offset" -outfile "tran_$1" "$1"
if [ "$wide" -gt 0 ] ; then
mv ".$1_padjpegtmp.jpg" "$1"
jpegtran -rotate 270 -outfile "tran_$1" "tran_$1"
fi