Qual é a maneira mais rápida de visualizar imagens do terminal?


240

O terminal é uma maneira muito rápida e conveniente de acessar rapidamente diretórios e arquivos (mais rápido do que encontrar e clicar no diretório).

Uma coisa que ele não pode mostrar no modo de texto é "imagens".

Qual é a melhor maneira de visualizar imagens (como a miniatura de imagens no Nautilus) quando você trabalha no terminal (por exemplo, comando nautilusou qualquer programa - mas deve ser rápido e conveniente)?



Acabei de executar um emulador de terminal no ambiente da minha área de trabalho. Então você tem as vantagens de ambos na mão.
vonbrand

Temos que contestar os votos próximos aqui, pois há uma diferença substancial entre a necessidade de visualizar arquivos de imagens de um terminal (presumivelmente GUI) (esta pergunta) e a necessidade de visualizá-los no console (a outra pergunta).
23714 goldilocks

Eu forneço uma lista de praticamente todas as suas opções aqui nesta seção de perguntas e respostas: Como obter miniaturas JPEG rapidamente
slm

Respostas:


224

A maneira de "clicar duas vezes" em um arquivo na linha de comando é xdg-open.

Se você estiver no Gnome (provavelmente, se estiver usando o Nautilus), poderá usar eogdiretamente ou qualquer outro programa de imagem ( fehé muito bom).

feh <image-name>      

Se você deseja consultar o image-namearquivo easilly.


1
fehfunciona mesmo com vários URLs!
Serge Stroobandt

6
@Searene Yeah! Longa vida a feh. Mas observo que nãofeh tem zoom ou qualquer outra função. eog, no entanto, também é leve e, além disso, pode ampliar , girar e navegar pelas imagens em uma pasta :). Apenas para as pessoas saberem antes de fazer uma escolha.
usar o seguinte código

1
Embora eogesteja pré-instalado no meu sistema operacional ubuntu, eu ainda prefiro fehporque ele pode ser fechado por qenquanto eoge xdg-openpor esc.
Evan Hu

5
Na verdade, fehtem zoom, fullscreen, rolar etc. olhar para a página homem
dalimama

1
@pikachuchameleon, você precisará configurar um ambiente X11 e encaminhar. Dê uma olhada nestas instruções
Kevin

101

Se você tiver instalado o imagemagick , poderá usar sua ferramenta de linha de comando de exibição muito útil .

display path/to/picture.png

2
Pessoalmente feh, prefiro , mas displaygeralmente é instalado em servidores da web, onde fehou outros navegadores de imagem não estão instalados.
pevik

3
display funciona muito bem no Ubuntu 16.04 LTS Desktop e também em estoque Raspbian. Nenhuma instalação é necessária. TNX de 2017
SDsolar 22/07/2017

Ótimo, funciona mesmo com stream:curl https://example.com/image.jpg | display
Pavel

96

Normalmente, corro python -m SimpleHTTPServer 8080de uma pasta que contém a imagem e a visualizo no navegador em localhost: 8080 / path / to / image.jpg. Funciona muito bem para navegar e observar diferentes arquivos de imagem e texto no mesmo diretório.

Editar: Este método também funciona para caixas remotas. Basta executar o servidor python como acima, e se as portas estiverem abertas, você poderá conectar-se ao myserver.com:8080/path/to/image.jpg. Se o servidor não expor portas, você poderá configurar um túnel ssh ssh me@myserver.com -N -L localhost:8080:localhost:8080e visualizar as imagens no navegador local em localhost: 8080 / path / to / image.jpg. Observe que essa interface http é muito mais rápida que o ssh -X.


11
Esperto! Funciona como um encanto e não há necessidade de digitar /path/to/image.jpg. Basta abrir localhost:8080e clicar nos nomes dos arquivos.
Roger Dahl

1
Em relação ao último parágrafo, você também pode adicionar túneis facilmente usando a configuração PuTTY! Então você pode acessá-lo através de um navegador. Impressionante!
ADTC

12
Eu precisava python -m http.servercom Python 3
drstevok 08/09

x-www-browser /path/to/imageoufirefox /path/to/image
Gayan Weerakutti

truque incrível! Exatamente o que eu estava procurando.
Neara 02/12

70

Criei uma ferramenta que usa vários caracteres gráficos de blocos unicode para melhorar a resolução (em comparação com os 2 pixels canônicos por abordagem de caractere adotados por outras soluções postadas aqui). Ele também exibe automaticamente as imagens no modo miniatura, se várias imagens forem fornecidas como entrada.

Instalação:

git clone https://github.com/stefanhaustein/TerminalImageViewer.git
cd TerminalImageViewer/src/main/cpp
make
sudo make install

Uso:

tiv <image(s)>

Mais detalhes no projeto github: https://github.com/stefanhaustein/TerminalImageViewer

Exemplo de captura de tela:

Captura de tela


4
Não sabe por que o voto negativo, acho que por causa da auto-promoção? Eu acho que é a melhor ferramenta para o trabalho e a questão ainda é relevante hoje.
Stefan Haustein

É uma pena que não funcione apt install. Talvez seja hora de fazer um ppa? De qualquer forma, este pacote funcionou para mim, enquanto nenhum dos outros funcionou (talvez eu os tenha usado de maneira errada). Eu precisava poder visualizar imagens no terminal (por exemplo, quando estou dentro de um contêiner do Docker) e não chamar um visualizador de imagens do terminal. Obrigado pela sua resposta e só posso agradecer mais por criar este pacote pequeno, mas valioso!
Artur Barseghyan

Obrigado! Você se importaria de criar um FR para um PPA no projeto github? Talvez alguém tem o prazer de entrar em cena - pelo menos não será esquecido até que eu encontrar algum pedaço de tempo livre para olhar para isso ...
Stefan Haustein

um piscar de olhos será mais fácil para todo mundo: há ppa para configurar para você, não ppa para adicionar para o usuário -> snapcraft.io
Daniele Dellafiore

Nice tool @StefanHaustein! Acabei de criar um PR para permitir aos usuários usá-lo através Docker :-)
de Bruno Perel

27

Eu acho que feh seria o que você está procurando.

Embora seja exibida uma janela semelhante ao terminal para exibição de imagens, como o mplayer faz para a reprodução de vídeo, o Feh ainda é considerado um visualizador de imagens baseado em terminal, devido ao seu estilo de controle com uso intensivo de comandos.


19

Se você estiver no OS X, o iTerm 2 suporta a exibição de imagens embutidas:

Imagem inline do iTerm2

Como você pode imaginar, isso pode ser muito útil quando você deseja exibir uma imagem sem abrir e abrir o Preview.app ou ter que abrir o Finder na imagem e pressionar a barra de espaço na imagem.

O recurso está documentado na página de recursos do iTerm2


É realmente lento na minha experiência.
Ilia Sidorenko

3
Funciona bem para mim. Sem problemas com lag. MBP / OSX 10.12.6
Heinrich Hartmann

18

Se você estiver no terminal puro com o framebuffer ativado, eu recomendaria o fbi . Está sempre na minha lista de tarefas pós-instalação .

Caso contrário, o eog é o abridor de imagens padrão no Gnome, como Kevin mencionou. Além disso, Shotwell parece abrir muito rápido para mim ... tenho certeza que existem centenas. :-)


Obrigado por este - é novidade para mim. Como um aparte, pesquisar no Google me coloca na página de manual ( fim'svisualizador de imagens em estilo framebuffer aprimorado ) com apenas alguns resultados de pesquisa. Ainda não sabemos a diferença.
mikeserv


9

A biblioteca imgdisplay do w3m pode exibir imagens diretamente. Ele funciona apenas em alguns emuladores de terminal, como o Xterm e o URxvt.

O ranger é um navegador de arquivos que utiliza a biblioteca para exibir visualizações. Adicione isso ao arquivo de configuração da guarda florestal para ativar o recurso:

set preview_images true

6

Na verdade, existe uma maneira de mostrar um arquivo PNG em um terminal no modo de texto, usando o tube de imagem:

captura de tela

Você pode ver o projeto no GitHub .

É claro que a imagem é uma aproximação da imagem real, considerando que o menor pixel é um caractere - tente dar uma olhada no resultado em um editor de texto, você verá um grande número de códigos de cores.

Você pode instalar a ferramenta assim (assumindo que você já instalou o node / npm): npm install -g picture-tube


6

Sem dependências, um arquivo C, um arquivo de cabeçalho: imcat

Trabalhos em linux, macos, janelas. Dimensiona automaticamente para a largura do terminal, com baixa amostragem de qualidade.

insira a descrição da imagem aqui

Observação: sério? Down-vote? Da próxima vez, talvez explique no comentário o porquê.


Alguma idéia de por que não consigo encontrar isso apt-get?
Sridhar Sarnobat 03/09

5

Outro ótimo visualizador de imagens baseado em terminal é o fim , que é um fbi aprimorado com um sistema de controle semelhante ao vim.


Boa solução, mas não mostrou uma maneira de fazê-lo.
Goddard

Eu tentei isso. Ele abre uma janela X separada sobre SSH, caso alguém esteja se perguntando. O que seria ideal para mim é uma tela de terminal em linha que funciona com SSH, mas não acho que exista uma boa.
Sridhar Sarnobat 03/09

4

Esta é uma pergunta de 4 anos, mas eu descobri que as pessoas ainda a consideram. Então, hoje eu gostaria de responder minha pergunta especificamente apenas para iTerm2.

Na primeira vez, fiz essa pergunta. O termo "mais rápido" estava pensando em visualizar a imagem tão rápido quanto o catcomando que exibe o texto. Então, hoje encontrei a resposta iTerm2, quais são os dois comandos úteis nome imgcate imgls.

Para usá-los, o primeiro vamos instalar iterm2-nigthly:

$ brew cask install iterm2-nightly

depois visite o site:

https://github.com/olivere/iterm2-imagetools

e instalar imgcate imglscomandos:

$ go install github.com/olivere/iterm2-imagetools/cmd/imgcat
$ go install github.com/olivere/iterm2-imagetools/cmd/imgls

Então, eu realmente os amo e também espero que isso seja útil para todos!


Isso é muito útil, então obrigado por responder isso 4 anos depois. Funciona como um encanto, mas pode incluir o passo de instalação ( brew install go) para aqueles que ainda não o possuem.
jamescampbell

@jamescampbell, você não precisa instalar, vá para obter os scripts imgcat e imgls. Eles são fornecidos pelo próprio desenvolvedor do iTerm aqui: iterm2.com/documentation-images.html , e esses são scripts bash.
akshay

1
qual é a opção mais próxima imgcatdo Linux? Estou tentando mudar atm
rien333


4

O terminal gatinho pode ser exibido dentro do terminal com o "gatinho" icat

Por exemplo

kitty +kitten icat /path/to/image

Exemplo:

insira a descrição da imagem aqui

A documentação do kitty sugere a criação de um alias, por exemplo

alias icat="kitty +kitten icat"

Para que você possa simplesmente fazer:

icat /path/to/image


3

Do terminal? Por que não no terminal: a cacaview pode ser a mais rápida. Por padrão, é mais rápido se o terminal não possui gráficos.

No Debian: sudo apt-get install caca-utils


3

pxl é uma opção bem legal que ainda não foi mencionada. Semelhante ao tubo de imagem que foi publicado anteriormente, mostra a imagem diretamente no terminal, embora suporte mais formatos de imagem.


3

Eu só uso o webrowser Chrome, que suporta jpg, svg, png, ico, animação gif... basicamente tudo o que eu sou propensos a precisar de:

google-chrome ./myphoto.jpg

Se você prefere o Firefox:

firefox ./myphoto.jpg

2

No linux, você pode instalar o gnome-open.

# In Debian flavors

sudo apt-get install gnome-open

Em seguida, crie um alias:

alias open='gnome-open'

Então você pode:

open file.pdf
open file.jpg
etc

Este foi instalado por padrão na minha instalação do Ubuntu.
starbeamrainbowlabs

1

Acabei de encontrar esta página, e ela ainda é muito relevante hoje. OP realmente não especificou se eles querem visualizador X ou fb.

Eu uso um pequeno utilitário chamado pho: http://www.shallowsky.com/software/pho/

Precisa de X, então ligue da linha de comando em uma janela do terminal. Vê muitos formatos de imagem, gif e jpg, com certeza ... outros também.

Pode fazer curingas a partir da linha de comando: por exemplo. "$ pho img00 ??. jpg" exibirá todos os arquivos que correspondem em ordem. O espaço avança na lista e o backspace volta. Seu carregamento rápido de imagens individuais - mantenha espaço e você voa por elas.

Muito rápido, se você quiser ver várias fotos, sinalizar as que mais interessam, girar, excluir indesejadas ... Eu continuo voltando a ela.

Na página da web acima:

O pho (pronunciado como a primeira sílaba em "foto") é um programa leve para exibir rapidamente um grande número de imagens, girar ou excluir algumas e fazer anotações sobre o que fazer com cada imagem - por exemplo, para passar por centenas de imagens depois de carregá-los de uma câmera digital.


1

Ainda que sejam ótimas respostas, meu problema foi visualizar imagens no próprio terminal, sem abrir nenhum aplicativo gráfico, por isso escrevi meu próprio script. Eu só precisava identificar a imagem e não precisava de todos os detalhes e não queria baixar nenhum pacote relativamente grande, se alguém precisar, também pode usá-lo: https://github.com/Deniz97/terminal-image- espectador


0

Eu tenho um alias de shell para o macOS chamado previewque pode (1) exibir uma imagem em linha ( -iou --inlineopção), a partir de stdin ou caminhos de arquivos especificados, e (2) apenas abrir uma imagem no aplicativo de visualização da Apple (sem nenhuma opção), o último também do stdin ou caminho (s) do arquivo, por exemplo:

cat image.jpg | preview

preview -i image.png

A exibição embutida funciona apenas com o imgcatalias do iTerm , portanto você precisa do iTerm instalado, executando e na parte frontal. Mas previewverifica se tudo isso é verdade.

Online aqui: https://github.com/JayBrown/Tools/blob/master/Aliases/preview


0

O gerenciador de arquivos do Ranger, permitindo a visualização da imagem nas configurações. Gerenciador de arquivos Ranger com visualização de imagem


-2

Se usar o gnome, é tão simples quanto digitar

$ gnome-open /path/to/photo

e abre a imagem usando o visualizador de imagens padrão que você possui em sua máquina.


3
Já postado há alguns meses: unix.stackexchange.com/a/248179/70524
muru

esse método será muito lento, se você tiver muitas imagens na mesma pasta com essa imagem.
neouyghur
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.