diff options
author | xyz <gky44px1999@gmail.com> | 2021-08-11 04:35:24 -0700 |
---|---|---|
committer | xyz <gky44px1999@gmail.com> | 2021-08-11 04:35:24 -0700 |
commit | 59fb5f9c1d450a277ec58c19408aae18fabafd1b (patch) | |
tree | 6277939615cd4177024053811a6dd12793515077 /.local | |
parent | b804d8ebfe38e7559e26d7df05d3fbf87c9652a3 (diff) |
refactor
Diffstat (limited to '.local')
-rwxr-xr-x | .local/bin/convwall | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/.local/bin/convwall b/.local/bin/convwall index 326a3de9..5249aead 100755 --- a/.local/bin/convwall +++ b/.local/bin/convwall @@ -1,6 +1,7 @@ #!/bin/sh # 16:9 screen resolution ratio +# 16*100/9 == 177 wratio=16 hratio=9 chopnum=99% @@ -8,19 +9,22 @@ chopnum=99% width=$(identify -format '%w' "$1") height=$(identify -format '%h' "$1") +ratio=$(echo "$wratio*100/$hratio" | bc) dim=$(echo "$width*100/$height" | bc) -if [ "$dim" -ne 177 ]; then - if [ "$dim" -lt 177 ]; then +if [ "$dim" -ne "$ratio" ]; then + if [ "$dim" -lt "$ratio" ]; then chopgeom="${chopnum}x0" width=$(echo "$height*$wratio/$hratio" | bc) else - chopgeom="0x${chopnum}" + chopgeom="0x$chopnum" height=$(echo "$width*$hratio/$wratio" | bc) fi - extgeom="${width}x${height}" + # may throw error sort: write failed: 'standard output': Broken pipe \n sort: write error + # caused by head exit (or close stdin) before sort output complete, can ignore + # https://stackoverflow.com/questions/46202653/bash-error-in-sort-sort-write-failed-standard-output-broken-pipe bgcolor=$(convert "$1" -gravity center -chop "$chopgeom" -define histogram:unique-colors=true -format %c histogram:info:- | sort -rn | head -n1 | awk \{print\ \$3\} | cut -c1-7) - convert "$1" -gravity center -background "$bgcolor" -extent "$extgeom" "$2" + convert "$1" -gravity center -background "$bgcolor" -extent "${width}x$height" "$2" else echo 'same resolution ratio, no need to convert' >&2 exit 1 |