blob: 702d648fb0aabffdc5b95c239d6d17c4751d3501 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#!/bin/sh -e
# Display images directly in terminal.
# Tested with xterm v361
# maxsize prints the geomtry size of terminal window, with
# a maximum value of 1000 pixels for width and height, or
# 640x480 if size can not be probed.
maxsize() {
[ "$WINDOWID" ] || { echo "640x480>"; return; }
xwininfo -id "$WINDOWID" | {
w=1000 h=1000
while read -r a b; do
case $a in
(Width:) [ $((b < w)) = 1 ] && w=$b ;;
(Height:) [ $((b < h)) = 1 ] && h=$b ;;
esac
done
echo "${w}x$h"
}
}
# Use convert(1) from imagemagick to output sixel format.
# -flatten uses the terminal background color as transparent layer
# -resize use the terminal size as bounding box, with a limit of 1000 pixels
# image is not resized if smaller than limit
#exec convert -resize "$(maxsize)>" -transparent-color white -flatten -- ${1:--} sixel:-
# color #rrrrggggbbbb
exec convert -resize "$(maxsize)>" -- ${1:--} sixel:${2:--}
|