这篇文章介绍一个在终端直接查看图片内容的脚本,依赖w3m,在终端模拟器满足色彩要求时,将图片打印到屏幕上
依赖
脚本
这个脚本参考了z3bra的博客
使用w3m自带的图片查看工具,在当前终端打印图片。为了不影响后续的命令输入,默认清屏。
它会根据终端的大小调整图片大小,尽量填满终端,并在下部显示新的PS1。对终端的色彩要求没有测试
下面是脚本:
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
29
30
31
32
33
34
35
36
|
#!/bin/bash
#
# z3bra -- 2014-01-21
# linusboyle modify this a little bit
#show img in terminal using w3mimgdisplay
test -z "$1" && exit
clear
W3MIMGDISPLAY="/usr/lib/w3m/w3mimgdisplay"
FILENAME=$1
FONTH=21 # 如果没有占满终端或过大,修改此值
FONTW=11 # 此值也是一样 这两个值是终端每行每列的大小,经过计算并不是像素的个数
COLUMNS=`tput cols`
LINES=`tput lines`
read width height <<< `echo -e "5;$FILENAME" | $W3MIMGDISPLAY`
max_width=$(($FONTW * $COLUMNS))
max_height=$(($FONTH * $LINES))
if test $width -gt $max_width ; then
height=$(($height * $max_width / $width))
width=$max_width
fi
if test $height -gt $max_height ; then
width=$(($width * $max_height / $height))
height=$max_height
fi
w3m_command="0;1;0;0;$width;$height;;;;;$FILENAME\n4;\n3;"
tput cup $(($height/$FONTH)) 0
echo -e $w3m_command|$W3MIMGDISPLAY
|
截图: