#image-viewer #ansi #ansi-term #ansi-codes #tui #image-resizing #cli

app viuwa

又一个“超级简单”的 cli/tui ANSI 图像查看器,与 wasm32-wasi 有着最小限度的兼容性

3 个版本

0.0.50 2022年11月11日
0.0.47 2022年10月22日

#2696 in 命令行工具

每月 24 次下载

MIT/Apache

200KB
2K SLoC

维乌瓦

crate github license

维乌瓦是一个简单的终端 ANSI 图像查看器,试图与 wasm32-wasi 目标保持最小限度的兼容性。

它几乎完全使用 ANSI 转义代码在终端中显示图像。

不支持 Kitty、Sixel 和 Iterm2 协议,对于跨协议终端图像查看,有更好的工具,如 viutimg,请去爱护它们。

只要不破坏 wasm32-wasi+ANSI 兼容性,就允许实现不同协议的 pull requests。

安装

cargo install viuwa

或对于最新版本

git clone https://github.com/WanderLanz/Viuwa.git && cd Viuwa && cargo install --path .

wasm 文件也包含在发布部分(禁用了 rayon 功能)。

特性

  • rayon:启用并行图像缩放和转换为 ANSI。默认启用。

用法

窗口图像查看(例如 Vim)

viuwa [image]

直接到命令行(例如 Catimg)

viuwa [image] --inline

对于更高级的用法,请参阅帮助

viuwa --help

示例

内联与最近邻过滤器

cli-f1

tui 与三角形过滤器

tui-f2

tui 帮助

tui-help

配置

环境变量

  • VIUWA_QUIET:如果设置为 true,维乌瓦将不打印任何消息或警告。
  • VIUWA_FILTER:设置调整图像时使用的过滤器类型。可能的值有 NearestTriangleCatmullRomGaussianLanczos3。默认为 Nearest
  • VIUWA_COLOR:设置输出 ANSI 图像的颜色类型。可能的值有 Truecolor256Gray256Gray。默认为 Truecolor
  • VIUWA_CORRECT:设置 256 色模式的亮度校正级别,允许更多像素转换为灰度以获得更好的对比度。0-100,默认为 100

使用内联标志

  • VIUWA_INLINE:如果设置为 true,维乌瓦将内联结果 ANSI 图像而不是使用 tui。
  • VIUWA_WIDTH:设置内联 ANSI 图像的宽度,否则不执行任何操作。
  • VIUWA_HEIGHT:设置内联ANSI图像的高度,否则不执行任何操作。

已知问题

  • 在wasm上,ANSI原始模式序列通常被忽略,因此您可能需要按Enter键向程序发送输入。
  • 一些wasm运行时可能会在等待用户输入时终止程序。可能会导致终端处于奇怪的状态。

许可证

本项目采用MITApache-2.0许可证。

贡献

请参阅CONTRIBUTING.md

依赖关系

  • clap crate
  • image crate
  • rayon crate
  • ndarray crate
  • crossterm crate

依赖关系

~20–31MB
~250K SLoC