怎么在 Terminal 中查看图片

openchafa 到 iTerm2 imgcat、Kitty icat:不同终端支持的图片显示方式不一样。

目录

  1. 先看结论
  2. 常用命令
  3. 为什么 chafa 看起来分辨率很低
  4. zsh: command not found: kitty
  5. imgcat 没有任何反应
  6. 怎么选择方案

1. 先看结论

在 Terminal 里“显示图片”有两类方法:

如果只是想从命令行打开图片,而不是嵌入终端窗口中显示,用 macOS 自带命令最简单:

open "分布图.png"

2. 常用命令

iTerm2 使用 imgcat

imgcat /path/to/image.png

# 当前目录里有脚本时
./imgcat "分布图.png"

如果没有 imgcat,可以安装 iTerm2 Shell Integration,或者下载脚本:

curl -L https://iterm2.com/utilities/imgcat -o /usr/local/bin/imgcat
chmod +x /usr/local/bin/imgcat

Kitty 使用 icat

kitty +kitten icat /path/to/image.png

WezTerm 使用 imgcat

wezterm imgcat /path/to/image.png

通用字符预览 使用 chafa

brew install chafa
chafa /path/to/image.png

3. 为什么 chafa 看起来分辨率很低

这通常不是图片坏了,也不是 chafa 出错,而是它的显示方式决定的。

可以用这些参数改善效果:

chafa --size=120x60 image.png
chafa --symbols=block --size=120x60 image.png
chafa --colors=full --size=120x60 image.png
chafa --format=symbols --symbols=space --fill=block --colors=full image.png

最有效的做法是把终端窗口拉大、字体调小,并确认终端支持 truecolor。想看真正高分辨率图片时,优先用 imgcatkitty +kitten icatwezterm imgcat

4. zsh: command not found: kitty

kitty 不是 macOS 系统自带命令,它是一个终端模拟器。出现这个报错,通常说明没有安装 Kitty,或者 Kitty 的命令没有进入 PATH

macOS 可以这样安装:

brew install --cask kitty

安装后需要打开 Kitty 终端,再运行:

kitty +kitten icat image.png

如果不想换终端,就用当前终端支持的方案:iTerm2 用 imgcat,WezTerm 用 wezterm imgcat,普通 Terminal 可以用 openchafa

5. imgcat 没有任何反应

./imgcat "分布图.png" 没反应时,最常见原因不是图片文件有问题,而是当前终端不支持 iTerm2 的图片协议。

先检查当前终端:

echo $TERM_PROGRAM

如果输出不是 iTerm.app,例如是 Apple_TerminalvscodeWarpTerminalimgcat 可能不会显示图片。

再检查脚本和图片文件:

ls -l ./imgcat "分布图.png"
file "分布图.png"

# 如果 imgcat 没有执行权限
chmod +x ./imgcat

还可以确认脚本本身是否能输出帮助信息:

./imgcat --help

如果有 help 输出但图片不显示,基本可以判断是终端不支持图片协议。用 iTerm2 打开终端后进入图片目录,再执行 ./imgcat "分布图.png"

6. 怎么选择方案

场景推荐命令说明
只想打开图片open image.png调用系统预览,不在终端内嵌显示。
普通 Terminal 看大概chafa --colors=full --size=160x80 image.png兼容性好,但清晰度有限。
iTerm2 内嵌显示imgcat image.png需要在 iTerm2 里执行。
Kitty 内嵌显示kitty +kitten icat image.png需要安装并使用 Kitty。
WezTerm 内嵌显示wezterm imgcat image.png需要安装 WezTerm。