295bcd7da0442a1f03df2c1c1f2e8cece4adfc64
4 if [[ "$#" -ne 2 ]] ||
! [[ -e "$1" ]] ||\
5 ! [[ "$2" =~ ^
[0-9]+[eEpPtTgGmMkKbB
]?$
]]; then
6 echo "Usage: $0 FILE TGT" >&2
7 echo " TGT is in bytes. Allowed suffixes: bB,kK,mM,gG,tT,pP,eE" >&2
8 echo " The result will be outputted to stdout. The progress to stderr" >&2
14 *[eE
]) TGT
=$
((TGT
*1024));&
15 *[pP
]) TGT
=$
((TGT
*1024));&
16 *[tT
]) TGT
=$
((TGT
*1024));&
17 *[gG
]) TGT
=$
((TGT
*1024));&
18 *[mM
]) TGT
=$
((TGT
*1024));&
19 *[kK
]) TGT
=$
((TGT
*1024));&
24 ORIGTGT
=$
(stat
--printf="%s" "$1")
25 printf "Original: % 20d\n" $ORIGTGT >&2
26 printf "Target : % 20d\n" $TGT >&2
27 if [[ "$TGT" -ge "$ORIGTGT" ]]; then
28 echo "TGT is already bigger than the original size" >&2
32 ORIG
=$
(identify
"$1" |
grep -oP '[0-9]+(?=x[0-9]+\+[0-9]+\+[0-9]+)')
37 echo -n "Resize to: " >&2
42 if [[ $PREV -eq $CUR ]]; then break; fi
43 if [[ $
(convert
"$1" -resize ${CUR}x png
:- |
wc -c) -ge $TGT ]];
44 then D
=-1; else D
=1; fi
48 convert
"$1" -resize "${CUR}x" png
:-