不久前,我们讨论了 Fim,这是一个轻量级的命令行图像查看器应用程序,用于从命令行显示各种类型的图像,如 bmp、gif、jpeg 和 png 等。今天,我偶然发现了一个名为 lsix的类似工具。它类似于类 Unix 系统中的 ls命令,但仅适用于图像。lsix 是一个简单的命令行实用程序,旨在使用 Sixel 图形格式在终端中显示缩略图。对于那些想知道的人来说,Sixel 是六像素six pixels的缩写,是一种位图图形格式。它使用 ImageMagick,因此几乎所有 imagemagick 支持的文件格式都可以正常工作。
  
  功能
  
  关于 lsix 的功能,我们可以列出如下:
  
  自动检测你的终端是否支持 Sixel 图形格式。如果你的终端不支持 Sixel,它会通知你启用它。
  
  自动检测终端背景颜色。它使用终端转义序列来试图找出终端应用程序的前景色和背景色,并清楚地显示缩略图。
  
  如果目录中有更多图像(通常大于 21 个),lsix 将一次显示这些图像,因此你无需等待创建整个蒙太奇图像(LCTT 译注:拼贴图)。
  
  可以通过 SSH 工作,因此你可以轻松操作存储在远程 Web 服务器上的图像。
  
  它支持非位图图形,例如 .svg、.eps、.pdf、.xcf 等。
  
  用 Bash 编写,适用于几乎所有 Linux 发行版。
  
  安装 lsix
  
  由于 lsix 使用 ImageMagick,请确保已安装它。它在大多数 Linux 发行版的默认软件库中都可用。 例如,在 Arch Linux 及其变体如 Antergos、Manjaro Linux 上,可以使用以下命令安装ImageMagick:
  
  $ sudo pacman -S imagemagick
  
  在 Debian、Ubuntu、Linux Mint:
  
  $ sudo apt-get install imagemagick
  
  lsix 并不需要安装,因为它只是一个 Bash 脚本。只需要下载它并移动到你的 $PATH 中。就这么简单。
  
  从该项目的 GitHub 主页下载最新的 lsix 版本。我使用如下命令下载 lsix 归档包:
  
  $ wget https://github.com/hackerb9/lsix/archive/master.zip
  
  提取下载的 zip 文件:
  
  $ unzip master.zip
  
  此命令将所有内容提取到名为 lsix-master 的文件夹中。将 lsix 二进制文件从此目录复制到 $PATH 中,例如 /usr/local/bin/。
  
  $ sudo cp lsix-master/lsix /usr/local/bin/
  
  最后,使 lsix 二进制文件可执行:
  
  $ sudo chmod +x /usr/local/bin/lsix
  
  如此,现在是在终端本身显示缩略图的时候了。
  
  在开始使用 lsix 之前,请确保你的终端支持 Sixel 图形格式。
  
  开发人员在 vt340 仿真模式下的 Xterm 上开发了 lsix。 然而,他声称 lsix 应该适用于任何Sixel 兼容终端。
  
  Xterm 支持 Sixel 图形格式,但默认情况下不启用。
  
  你可以从另外一个终端使用命令来启动一个启用了 Sixel 模式的 Xterm:
  
  $ xterm -ti vt340
  
  或者,你可以使 vt340 成为 Xterm 的默认终端类型,如下所述。
  
  编辑 .Xresources 文件(如果它不可用,只需创建它):
  
  $ vi .Xresources
  
  添加如下行:
  
  xterm*decTerminalID : vt340
  
  按下 ESC 并键入 :wq 以保存并关闭该文件。
  
  最后,运行如下命令来应用改变:
  
  $ xrdb -merge .Xresources
  
  现在,每次启动 Xterm 就会默认启用 Sixel 图形支持。
  
  在终端中显示缩略图
  
  启动 Xterm(不要忘记以 vt340 模式启动它)。以下是 Xterm 在我的系统中的样子。
  
  使用 Sixel 图形格式在终端中显示缩略图使用 Sixel 图形格式在终端中显示缩略图
  
  就像我已经说过的那样,lsix 非常简单实用。它没有任何命令行选项或配置文件。你所要做的就是将文件的路径作为参数传递,如下所示。
  
  $ lsix ostechnix/logo.png
  
  使用 Sixel 图形格式在终端中显示缩略图使用 Sixel 图形格式在终端中显示缩略图
  
  如果在没有路径的情况下运行它,它将显示在当前工作目录中的缩略图图像。我在名为 ostechnix 的目录中有几个文件。
  
  要显示此目录中的缩略图,只需运行:
  
  $ lsix
  
  使用 Sixel 图形格式在终端中显示缩略图使用 Sixel 图形格式在终端中显示缩略图
  
  看到了吗?所有文件的缩略图都显示在终端里。
  
  如果使用 ls命令,则只能看到文件名,而不是缩略图。
  
  使用 Sixel 图形格式在终端中显示缩略图使用 Sixel 图形格式在终端中显示缩略图
  
  你还可以使用通配符显示特定类型的指定图像或一组图像。
  
  例如,要显示单个图像,只需提及图像的完整路径,如下所示。
  
  $ lsix girl.jpg
  
  使用 Sixel 图形格式在终端中显示缩略图使用 Sixel 图形格式在终端中显示缩略图
  
  要显示特定类型的所有图像,例如 PNG,请使用如下所示的通配符。
  
  $ lsix *.png
  
  使用 Sixel 图形格式在终端中显示缩略图使用 Sixel 图形格式在终端中显示缩略图
  
  对于 JEPG 类型,命令如下:
  
  /// <summary>
/// 设置最多缓存文件数目
/// </summary>
private static int cacheCount = 20;
/// <summary>
/// 切片文件缓存集合类
/// </summary>
private static List<BundleCache> bundleCacheList = new List<BundleCache>();
/// <summary>
/// 通过id返回切片缓存
/// </summary>
/// <param name="cache"></param>
/// <returns></returns>
private static BundleCache AddBundleCache(bundlx cache)
{
string cacheid = cache.id;

if (bundleCacheList.Select(e => e.BundleId).ToList().Contains(cacheid))
{
//更新最后访问时间
BundleCache tem = bundleCacheList.Where(e => e.BundleId == cacheid).FirstOrDefault();
tem.LastTime = DateTime.Now;
changeCache(www.michenggw.com);
return bundleCacheList.Where(e => e.BundleId == cacheid).FirstOrDefault();
}
else
{
//未添加的文件,写入缓存集合
BundleCache bc = new BundleCache();
bc.BundleId = cache.id;
bc.CTime = DateTime.Now;
bc.LastTime = DateTime.Now;
using (FileStream file = new www.yingka178.com FileStream(cache.bundlxFileName, FileMode.Open))
{
byte[] bufferfile = new byte[file.Length];
file.Read(bufferfile, 0, (int)file.Length);
//写入数据
bc.BundlxData =www.huarenyl.cn bufferfile;
}
using (FileStream file =www.zhongyiyuL.cn new FileStream(cache.bundleFileName, FileMode.Open))
{
byte[] bufferfile www.mcyulegw.com= new byte[file.Length];
file.Read(bufferfile, 0, (int)file.Length);
//写入数据
bc.BundleData =www.yongshi123.cn bufferfile;
}
bundleCacheList.Add(bc);
changeCache();
return bc;
}
}
/// <summary>
/// 保证缓存文件数目一定
/// </summary>
private static void changeCache( www.yongshiyule178.com)
{
if (bundleCacheList.Count>cacheCount)
{
bundleCacheList=www.tiaotiaoylzc.com bundleCacheList.OrderByDescending(e => e.LastTime).ToList().Take(cacheCount).ToList();
  
  缩略图的显示质量非常好。我以为 lsix 会显示模糊的缩略图。但我错了,缩略图清晰可见,就像在图形图像查看器上一样。
  
  而且,这一切都是唾手可得。如你所见,lsix 与 ls 命令非常相似,但它仅用于显示缩略图。如果你在工作中处理很多图像,lsix 可能会非常方便。试一试,请在下面的评论部分告诉我们你对此实用程序的看法。如果你知道任何类似的工具,也请提出建议。我将检查并更新本指南

使用 Sixel 图形格式在终端中显示缩略图的更多相关文章

  1. 【转载】在Windows终端中显示UTF-8字符

    一直苦恼于如何在Windows终端中显示UTF-8字符的问题.比如,在MySQL命令行下,如果数据库的编码是UTF-8,那么,在查询数据库的时候,里面的中文都会变成乱码.今天半无意的搜索了一下,结果发 ...

  2. mac终端中显示tree的命令

    寻觅了良久终于找到了mac下如何在终端显示tree的命令了,作为从linux下转过来的人,还没适应mac的finder,还是喜欢在命令行下查看文件. 命令: find . -print | sed - ...

  3. 在Linux的终端中显示BMPString的内容

    在上一篇博文中,介绍了怎样在 Windows 的控制台界面下输出 BMPString 的内容,可是那里的方法在 Linux 下不适用.假设将那里的演示样例代码放到 Linux 下运行.输出的结果为乱码 ...

  4. 在Windows的控制台和Linux的终端中显示加载进度

    Windows中 #include <stdio.h> #include <windows.h> int main() { ;//任务完成总量 int i; ; i < ...

  5. [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)

    本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...

  6. shell bash终端中输出的颜色和格式详解(超详细)

    文章目录 1) 格式 1.1 Set 1.2 Reset 2)8/16 Colors 2.1 前景(文字) 2.2 背景 3)88/256颜色 3.1 前景(文字) 3.2 背景色 4)组合属性 5) ...

  7. mysql数据库导出模型到powerdesigner,PDM图形窗口中显示数据列的中文注释

    1,mysql数据库导出模型到powerdesigner 2,CRL+Shift+X 3,复制以下内容,执行 '******************************************** ...

  8. 转 在PowerDesigner的PDM图形窗口中显示数据列的中文注释

    Name是名称(字段描述),Code是字段名称,Comment是注释名称,ER图中显示的是Name.一般设计时,Name跟comment都设计成描述, 而设计时候常把comment写成中文,name保 ...

  9. zabbix 在图形中显示网络设备的接口描述

    zabbix原始模板没有提供来显示网络设备接口的描述,我们通常看到的图形显示是下面这样的: zabbix 3之后图形显示变化蛮大的,但我们乍一看,并不知道这个ethernet0/1是什么接口,网络设备 ...

随机推荐

  1. Python基础之公共方法

    公共方法:就是列表,元组,字典,字符串能共同使用的方法: Python内置函数 内置函数罗列 函数 描述 备注 len(item) 计算容器中的元素个数 del(item) 删除变量 del有两种方法 ...

  2. 20155227《网络对抗》Exp3 免杀原理与实践

    20155227<网络对抗>Exp3 免杀原理与实践 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等 ...

  3. jqGrid 奇淫巧技

    1.新建maven-web项目 结构如图 #GLOBAL_DIGITALMEDIA_SEARCH_grid-table > tbody > tr >td:last-child{ te ...

  4. 浅谈我的UI设计之路

    时光匆匆,进入UI学习已经快两个月了,这段时间过得很充实,因为有压力才有收获. 还记的刚刚学习手绘的时候,对于这个行业只有一个初步的认识,知道自己喜欢,但是真正学习的时候才发现,我要学习的东西还有很多 ...

  5. 【MAVEN】Missing artifact jdk.tools:jdk.tools:jar:1.6 eclipse

    搭建开发环境,遇到问题 : IDE 使用 eclipse 公司的项目用Maven管理,从git上拿下来代码后开始build后:    提示    [missing artifact jdk.tools ...

  6. 金蝶盘点机PDA条码数据采集器WMS系统具体有哪些功能

    1.  使用汉码盘点机PDA实现仓库条码管理的好处 (1)  传统电脑管理软件出入库需要来回电脑跑人工手工电脑录单效率低,通过人眼识别商品品种和清点商品数量,容易造成录单错误.从而造成电脑管理软件库存 ...

  7. B1004. 成绩排名

    这一题总算是把C++的重载活学活用了一回,节省了很多脑细胞. #include<bits/stdc++.h> using namespace std; struct student{ st ...

  8. LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS

    LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163. ...

  9. 小学四则运算APP 第一个冲刺阶段 第一天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 思考:初步了解小学四则运算数是在100以内的加减乘除,首先先从简单的地方入手,把最基础的算法功 ...

  10. JS基础(四)运算符

    一.比较运算符 1.== : 判断两边值是否相等 2.>= : 判断左边的值是否大于或等于右边的值 3.<= : 判断左边边的值是否小于或等于右边的值 4.>   : 判断左边的值是 ...