mirror of
https://github.com/Phantop/dotfiles
synced 2024-12-27 07:26:43 +00:00
47 lines
1.2 KiB
Bash
Executable file
47 lines
1.2 KiB
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
|
|
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
|
|
backup=$(mktemp)
|
|
mv "$1" "$backup"
|
|
jpegtran -rotate 90 -outfile "$1" "$backup"
|
|
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)
|
|
outfile="$(dirname "$1")/tran_$(basename "$1")"
|
|
|
|
test "$REFLECT" && mode=r || mode=f
|
|
jpegtran -crop "$des_width$mode+$offset" -outfile "$outfile" "$1"
|
|
|
|
if [ "$wide" -gt 0 ] ; then
|
|
mv "$backup" "$1"
|
|
jpegtran -rotate 270 -outfile "$outfile" "$outfile"
|
|
fi
|
|
|
|
if [ "$jxl" != 0 ]; then
|
|
cjxl -e 8 "$outfile" "tran_$jxl"
|
|
rm "$outfile" "$1"
|
|
fi
|