Давным-давно, когда мы еще писали консольный вк, хотелось прикрутить пикчи к ncurses. Чекали w3m, еще пару тулов, но у всех были проблемы с рендером, саппорт не всех терминалов и т.д.
И тут я наткнулся на Überzug
Отличная вещь, написана на питоне, там и примеры для курсов в ридми.
В итоге написал такой небольшой скрипт (за убогий баш-код не пинать), который определяет максимально возможный сайз (без потери соотношения сторон) и нужную строку на которой рендерить пик.
#!/bin/bash
[[ -z "$1" ]] && echo "Error: image path not specified" && exit 1
source "`ueberzug library`"
echo -ne "\033[6n"
read -s -d\[ garbage
read -s -d R cursor_y
cursor_y=(${cursor_y//;/ })
cursor_y=`expr $cursor_y - 1`
tmp=`stty size`
size_y=`echo $tmp | cut -f1 -d' '`
size_x=`echo $tmp | cut -f2 -d' '`
max_height=`expr $size_y - $cursor_y`
ImageLayer 0< <(
ImageLayer::add [identifier]="example0" [x]="0" [y]="$cursor_y" [max_width]="$size_x" [max_height]="$max_height" [path]="$1"
read
)
По зависимостям один питон пакет:
sudo pip install ueberzug
Сам скрипт тут
Делаем симлинк в /usr/bin/ и радуемся пикчам в терминале
>>> Просмотр (1920x1080, 3671 Kb)