小型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庫。