12 个版本 (7 个稳定版)

1.5.0 2023年11月21日
1.4.0 2021年12月18日
1.3.0 2020年12月13日
1.2.1 2020年10月28日
0.2.1 2019年5月7日

#6 in #gif

Download history 140/week @ 2024-04-09 138/week @ 2024-04-16 129/week @ 2024-04-23 143/week @ 2024-04-30 139/week @ 2024-05-07 222/week @ 2024-05-14 184/week @ 2024-05-21 160/week @ 2024-05-28 208/week @ 2024-06-04 122/week @ 2024-06-11 106/week @ 2024-06-18 116/week @ 2024-06-25 103/week @ 2024-07-02 129/week @ 2024-07-09 95/week @ 2024-07-16 98/week @ 2024-07-23

每月437次下载

MITLGPL-3.0-or-later

21KB
365

描述

A small command-line application to view images from the terminal written in Rust. It is basically the front-end of viuer. It uses either iTerm or Kitty graphics protocol, if supported. If not, lower half blocks (▄ or \u2584) are displayed instead.

Based on the value of $TERM, viuer decides which protocol to use. For half blocks, $COLORTERM is inspected. If it contains either truecolor or 24bit, truecolor (16 million colors) will be used. If not, it will fallback to using only ansi256. A nice explanation can be found in this gist.

功能

  • 原生 iTerm 和 Kitty 支持
  • 动画 GIF 支持
  • 通过 stdin 接受媒体
  • 自定义尺寸
  • 透明度
  • 实验性 Sixel 支持(在 sixel 功能标志之后)

安装

从源代码安装需要本地的 Rust 环境

git clone https://github.com/atanunq/viu.git

# Build & Install
cd viu/
cargo install --path .

# Use
viu img/giphy.gif

或者不克隆

cargo install viu

二进制文件

可以从 发布页面 下载预编译的二进制文件。GPG 指纹是 B195BADA40BEF20E4907A5AC628280A0217A7B0F。

软件包

MacOS

brew 中可用。

brew install viu

Arch Linux

extra/viu 中可用。

pacman -S viu

NetBSD

graphics/viu 中可用。

用法

示例

Kitty 终端上

Kitty

在 Mac 上使用 iTerm

iTerm

使用半角字符块(Kitty协议和tmux不兼容)

Demo

Demo

Demo

按下了Ctrl-C以停止GIF动画。

viu只接收到一个文件且该文件是GIF时,它会反复显示,直到按下Ctrl-C。然而,当有多个文件可供显示时,GIF只会显示一次。

iTerm 笔记

iTerm可以独立处理GIF,性能更佳,但通过--once--frame-rate进行配置在那里将无效。

宽高比

如果没有为viu提供任何标志,它将尝试获取它被调用的终端的大小。如果成功,它将调整图像并保留宽高比。只有在同时使用选项-w-h时,宽高比才会改变。

命令行选项

View images right from the terminal.

Usage: viu [OPTIONS] [file]...

Arguments:
  [file]...  The images to be displayed. Set to - for standard input.

Options:
  -w, --width <width>
          Resize the image to a provided width
  -h, --height <height>
          Resize the image to a provided height
  -x <x>
          X offset [default: 0]
  -y <y>
          Y offset [default: 0]
  -a, --absolute-offset
          Make the x and y offset be relative to the top left terminal corner. If not set, they are relative to the cursor's position.
  -r, --recursive
          Recurse down directories if passed one
  -b, --blocks
          Force block output
  -n, --name
          Output the name of the file before displaying
  -t, --transparent
          Display transparent images with transparent background
  -f, --frame-rate <frames-per-second>
          Play the gif at a given frame rate
  -1, --once
          Loop only once through the gif
  -s, --static
          Show only the first frame of the gif
  -H, --help
          Print help information
  -V, --version
          Print version information

依赖关系

约10-19MB
约236K SLoC