dotfiles/bin/croptop

28 lines
657 B
Bash
Executable File

#!/usr/bin/env sh
set -e # exit on failure
IFS=$(printf '\n\t') # smarter ifs
jxl=0
if file "$1" | grep 'JPEG XL'; then
jxl="$1"
out=$(mktemp --suffix=.jpg)
djxl "$1" "$out"
shift
set -- "$out" "$@"
fi
test "$RATIOW" || RATIOW=16
test "$RATIOH" || RATIOH=9
imagew=$(identify -format %w "$1")
des_ratio=$(printf '3 k %u %u / p' "$RATIOW" "$RATIOH" | dc)
des_height=$(printf '1 k %u %f / p' "$imagew" "$des_ratio" | dc | cut -d. -f1)
outfile="$(dirname "$1")/tran_$(basename "$1")"
jpegtran -crop "$imagew"x"$des_height" -outfile "$outfile" "$1"
if [ "$jxl" != 0 ]; then
cjxl -e 8 "$outfile" "tran_$jxl"
rm "$outfile" "$1"
fi