小型C ++程序使用RGB ANSI代码和Unicode块图形字符在(现代)终端显示图像。
使用Unicode timg Block字符显示每个字符单元的两个24位像素。该程序通过使用以下算法对(可能降低的)图像的每个4x8像素单元格进行以下算法来增强分辨率:使用以下算法:
通过使用-0选项禁用此优化,请参阅区别。或者只是查看本文末尾的比较图像。
tiv [options] < filename > [ < filename > ...]外壳将扩大通配符。默认情况下,如果提供了多个图像,将显示缩略图和文件名。对于选项列表,请在没有任何参数的情况下运行命令或--help螺旋。
SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later重要的
所有安装方法都需要安装ImageMagick,这是所需的依赖性。大多数软件包经理应自动安装它。
我们的Makefile目前仅支持g++ 。应该使用支持C ++ 17和Unix标头( ioctl.h and sysexits.h ,特别是windows.h的任何您喜欢的编译器)手动编译tiv 。欢迎PR。
git clone https://github.com/stefanhaustein/TerminalImageViewer.git
cd TerminalImageViewer/src
make
# To move the tiv binary into your PATH (hopefully), also do
sudo make install请不要忘记安装ImageMagick ...通过sudo apt install imagemagick和Macos通过brew install imagemagick 。
brew install tiv由于原始的Apple Shell仅支持256颜色模式(-256),并且似乎有一些额外的线间距,因此扭曲了图像,我们还建议安装Iterm2:
brew install --cask iterm2
make LDLIBS=-lstdc++fs (但也会破坏MacOS),请参阅#103TIV可以用作API。因此,如果您一直想在外壳中运行自己喜欢的FPS,这就是机会。
所有用作库的代码都在tiv_lib.h和tiv_lib.cc中隔离。
主要切入点是
CharData findCharData (GetPixelFunction get_pixel, int x0, int y0, const int &flags)呼叫采用std ::函数,该功能允许TIV代码从Framebuffer请求像素。
从此框架缓冲器中,呼叫将查询像素的4x8像素矩形,其中x0和y0定义了左上角。呼叫搜索最佳的Unicode图形字符和颜色,以近似图像的此单元格,并将其返回在Chardata结构中。
我很高兴接受Apache 2.0许可下的有用捐款,但是...
大多数示例是使用该程序的Java版本拍摄的,该程序的输出应该等效,但在CPU年中,千禧年的输出较慢。
如果多个图像匹配文件名规格,则显示缩略图。
在下面的示例中,顶部图像是通过-0选项禁用字符优化的。
您可以在Apache许可证的GPL(3或更高版本)或版本2.0下免费使用此代码。我们包括在Cecill 2.0(靠近GPL并与之兼容的)或[Cecill-C](https://spdx.org/licenses/cecill-c)(靠近LGPL并与Apache兼容)的CIMG库。