Linha de comando SVG e visualizador de arquivos de imagem no Linux?

36

Existe algum visualizador de gráfico de linha de comando (compatível com pipe) para arquivos de imagem SVG e JPG / PNG?

Especialmente, os arquivos de gráfico / imagem são enviados através da linha de tubulação, em vez de arquivos simples, portanto, deve haver uma opção para especificar o tipo / extensão do arquivo.

Embora o gv funcione para PS / PDF gerado por programas de ponto, eu gostaria de saber se existem alternativas para oferecer suporte a arquivos de imagem SVG etc.

Xiè Jìléi
fonte
1
apenas para esclarecer: seu ponto principal não é exibir .svg, .jpg e .png no console ("linha de comando"), mas sim canalizar esses tipos de mímica para um programa gráfico normal?
akira
1
Sim, eu gostaria de exibir no X. Assim como gv. Mas o gv não suporta SVG etc.
Xiè Jìléi
gwenviewmuito rápido, gostaria de saber se atende às suas necessidades?
Aquarius Power

Respostas:

37

Você já experimentou o displayprograma que acompanha o ImageMagick ?

Pausado até novo aviso.
fonte
3
AFAIK, o Imagemagick sozinho não pode exibir arquivos SVG, ele precisa de uma ferramenta que converta SVG em bitmap. No Debian, sudo aptitude install librsvg2-biné necessário se o "rsvg-convert" ainda não estiver instalado. O pacote também contém um visualizador rsvg-view-3com melhor zoom que display.
Mytskine
2
@Mytskine: De acordo com a Documentação do ImageMagick , ele usará seu próprio renderizador SVG interno se o Inkscape ou o RSVG não estiverem disponíveis.
Pausado até novo aviso.
1
No meu sistema: inkscapeé lento para carregar, inkviewé rápido, mas parece que não consegue mudar de vista? displayfunciona muito bem para mim :-)
Hugh Perkins
Não consegui obter o trabalho de inkview a partir da entrada de pipe, mas o display faz exatamente o que eu quero :-) Eu o uso como go run my_svg_generator.go | displaythx.
JepZ
1
ATENÇÃO!!!! não use a tela se estiver com pressa !!! para um arquivo svg de 500kb (de análise de problemas de inicialização do systemd), foram necessários 20 minutos para que eu pudesse usar minha máquina novamente, pois usava 4 GB (solicitados 7 GB de virt.mem) da minha RAM de 6 GB já inchada e trocava muito (5 GB foi para a troca só por causa do visor) :(, não tenho certeza sobre o desempenho de qualquer outra opção de visualizar SVG tho,. gwenviewbastante rápido btw
Aquarius Poder
12

O Inkscape já vem com seu próprio visualizador:inkview

Falta recursos, pode ser um pouco lento, mas funciona (e provavelmente renderiza o SVG com mais precisão do que o ImageMagick display).

Denilson Sá Maia
fonte
Só queria notar que eu tentei inkview(acredito que a partir de 0.48 inkscape) no Ubuntu 10.04.3, iniciei incrivelmente rápido! (EDIT: mas apenas para .svgs pequenos ; tente inkview /usr/share/inkscape/examples/*.svg*como diz a página de manual, também existem alguns pesados ​​... Ainda assim, a inicialização da GUI é rápida.) Obrigado por essa observação, @ DenilsonSá - felicidades!
Sdaau 20/05
1
Para SVGs realmente grandes, o inkview parece quebrar.
CMCDragonkai
10

O que você quer dizer com 'pipe-enabled'?
fehé um visualizador de linha de comando muito bom, com várias opções.

Ivan Petrushev
fonte
1
Quero dizer que aceita entrada de stdin, e acho que o tipo MIME, se possível. Ou especifique a extensão explicitamente se não conseguir adivinhar o tipo de arquivo heuristicamente.
Xiè Jìléi 11/08/10
11
fehparece não suportar SVG; Eu recebo " feh WARNING: pySVGLogo.svg - No Imlib2 loader for that file format... Saúde!
Sdaau
1
Mais algumas notas: primeiro, feh página inicial , exemplos e capturas de tela ; segundo ( ubuntu 10.04.3 ): inicia muito rápido; possui pacote Debian / Ubuntu; tem uma interação um pouco estranha do mouse (veja feh --helpno final); Eu posso carregar um diretório de pngs, e manter ou (teclas de seta) pressionadas, ele carrega tão rápido que parece (ou melhor que) um .gif animado :)... Felicidades!
Sdaau 20/05/12
1
@sdaau, feh de fato não suporta SVG, portanto, não é uma resposta útil para o OP.
Dylan Thurston
8

Eu normalmente trabalho com SVG como arquivos de texto, portanto, gostaria que o visualizador atualizasse automaticamente a exibição assim que o arquivo fosse salvo (e seu conteúdo alterado) - isso deve ser aplicável a situações 'passíveis de pipoca', eu acho (ou seja, com nome tubos).

Observe que, para aplicativos Gnome padrão:

  • evinceatualmente funciona assim para PDFs, mas aparentemente não pode ler SVG (para mim gera " Unable to open document - Error opening file: Permission denied" quando tentei carregar arquivos SVG)
  • eog(Eye Of Gnome) - as últimas versões - também pode detectar se um arquivo foi alterado e oferecer um botão 'Recarregar'; mas, aparentemente, você ainda teria que clicar em 'Recarregar' a cada vez (não consigo encontrar uma maneira de causar o recarregamento automático sempre na troca de arquivos eog, como evincese comporta com PDFs) - e também, pelo menos no meu Ubuntu 10.04, eogsuporte a SVG está um pouco quebrado (amplie os resultados com linhas borradas)
  • O ImageMagick displaynão apenas não é atualizado automaticamente quando o arquivo é alterado no disco - e mesmo quando você pressiona 'atualizar' display, você ainda não obtém a versão mais recente do arquivo (ou seja, é necessário reiniciar displaypara mostrar a versão mais recente :() .

Aqui estão mais algumas notas que encontrei até agora:

  • Squiggle, o navegador SVG O navegador SVG que faz parte do kit de ferramentas Batik. - Faça o download do Batik batik-1.7.zip; desempacote; correr java -jar batik-squiggle.jare aí está; não atualiza a imagem automaticamente se o arquivo svg for alterado no disco
  • Visualizador de imagens SVG? - Recomendações dos fóruns do Ubuntu :
    • No post 8 - " Eu escrevi um pequeno script python ... Você apenas o executa como: svg_compare.py e ele abre um svg e o exibe usando uma biblioteca svg e a biblioteca raster do gtk. Você pode ampliar com o mouse. .. "
    • xsvg(em http://cairographics.org ) - Instalei libsvg1_0.1.4-1_i386.deb , libsvg-cairo1_0.1.6-5_i386.deb e xsvg_0.2.1-3_i386.deb nessa ordem; essas versões são de 2005, e por isso xsvgé extremamente simples - sem zoom, nada .. E nem é preciso dizer que ele não reage às alterações salvas nos arquivos automaticamente ...
  • por isso, descobri rsvg-view, do qual acho que faz parte sudo apt-get install librsvg2-bin. Seu pequeno, agradável, suporta stdin - no entanto, também rsvg-viewnão pode detectar uma alteração no arquivo e atualizá-lo automaticamente.

Sim - bem, espero que isso ajude ...
Saúde!

 

EDIT (Dec 24 '10): bem, aqui está também minha contribuição: svg_refreshview.py - que é basicamente um retrabalho svg_compare.pymencionado acima, que simplesmente mostra um arquivo SVG, recarrega o arquivo e atualiza a tela se o arquivo foi modificado . ( ele não pode realmente funcionar com stdin - mas há outros scripts no meu repositório que analisam stdin em python, talvez eles ajudem ).

EDIT2 (20 de maio de 12): Além disso, surgiu um exemplo de script Perl-Tk, que é muito bruto ( sem interação do mouse, sem nada ), mas usa a API ImageMagick Perl e, portanto, pode renderizar SVG (como bitmap em uma tela) ), consulte a resposta # 10670039 - API do ImageMagick para interface de aplicativo da GUI da linha de comandos para display- Stack Overflow .

sdaau
fonte
Ocasionalmente, eu remendei o Reloadmaterial de eogAPENAS ONTEM! Eu também odeio esse botão!
Xiè Jìléi
E, para falar a verdade, o que displayvem de ImageMagicknão dimensiona bem o SVG, porque rasterizou o gráfico antes de exibi-lo. E ainda pior, displaye rsvgnão funciona com alguns dos meus arquivos SVG. Até agora, apenas o FireFox é processado corretamente. O FireFox supera tudo.
Xiè Jìléi
Oi @ 谢 继 雷, obrigado pelos comentários! Bem - acabei de editar meu post e adicionei um link para um script python que acabei de montar - experimente, talvez ajude ... Saúde! Também tenho +1 no "odeio esse botão" :) [embora, devo admitir: eu sempre prefiro um botão para fazer algo manualmente - do que não tê-lo :) ... Gostaria apenas de atualizar automaticamente extra :)]
sdaau
4

Segundo a recomendação de Dennis Williamson sobre o ImageMagick display.

Além disso, às vezes você pode usar pipes nomeados para canalizar dados para programas que lêem de um arquivo.

Exemplo:

mkfifo /tmp/foo.svg
cat /usr/share/inkscape/clipart/tux.svg > /tmp/foo.svg & inkscape /tmp/foo.svg
rm -f /tmp/foo.svg

No entanto, não funcionará com programas que esperam conseguir retroceder no arquivo.

Jukka Matilainen
fonte
Esse uso do pipe nomeado é muito criativo, obrigado. Após uma tentativa, achei que demorou um pouco para inicializar, é um editor funcional completo e não um visualizador simples.
Xiè Jìléi 11/08/10
3

Parece que o visualizador do Geeqie lida com gráficos svg e carrega automaticamente as imagens atualizadas. Não sei se é possível obter imagens do stdin. Espero que ajude.

Raio
fonte