¿Línea de comando SVG y visor de archivos de imagen en Linux?

36

¿Hay algún visor gráfico de línea de comandos (capaz de canalizar) para archivos de imagen SVG y JPG / PNG?

Especialmente eso, los archivos de gráficos / imágenes se envían a través de una tubería, en lugar de archivos simples, por lo que debe haber una opción para especificar el tipo / extensión de archivo.

Aunque gv funciona para PS / PDF generado por programas de puntos, me gustaría saber si hay alternativas para admitir archivos de imagen SVG, etc.

Xiè Jìléi
fuente
1
solo para aclarar: ¿su punto principal no es mostrar el .svg, .jpg y .png en la consola ("línea de comando"), sino más bien canalizar estos tipos de mimo a un programa gráfico normal?
akira
1
Sí, me gustaría mostrar en X. Al igual que gv lo hace. Pero gv no admite SVG, etc.
Xiè Jìléi
gwenviewbastante rápido, ¿se pregunta si satisface sus necesidades?
Acuario Power

Respuestas:

37

¿Has probado el displayprograma que viene con ImageMagick ?

Pausado hasta nuevo aviso.
fuente
3
AFAIK, Imagemagick solo no puede mostrar archivos SVG, necesita una herramienta que convierta SVG en mapa de bits. En Debian, sudo aptitude install librsvg2-bines necesario si "rsvg-convert" aún no está instalado. El paquete también contiene un visor rsvg-view-3que tiene mejor zoom que display.
Mytskine
2
@ Mytskine: Según la documentación de ImageMagick , utilizará su propio renderizador interno de SVG si Inkscape o RSVG no están disponibles.
Pausado hasta nuevo aviso.
1
En mi sistema: inkscapees lento de cargar, inkviewes rápido pero parece que no puede cambiar la vista. displayfunciona muy bien para mí :-)
Hugh Perkins
No pude obtener el trabajo de vista de tinta de la entrada de tubería, pero la pantalla hace exactamente lo que quiero de todos modos :-) Lo uso como go run my_svg_generator.go | displaythx.
JepZ
1
¡¡¡¡ADVERTENCIA!!!! ¡No use la pantalla si tiene prisa! para un archivo de svg de 500 kb (de análisis de problemas de arranque de systemd), tardé 20 minutos antes de que pudiera usar mi máquina nuevamente, ya que usaba 4 GB (solicitó 7 GB de virt.mem) de mi RAM ya hinchada de 6 GB y estaba intercambiando una gran cantidad (5 GB fue a cambiar solo por la pantalla) :(, no estoy seguro sobre el rendimiento de cualquier otra opción para visualizar svg tho., gwenviewbastante rápido por cierto
Aquarius Power
12

Inkscape ya viene con su propio visor:inkview

Carece de funciones, puede ser un poco lento, pero funciona (y probablemente representa SVG con mayor precisión que ImageMagick display).

Denilson Sá Maia
fuente
Solo quería notar que intenté inkview(creo que desde 0.48 inkscape) en Ubuntu 10.04.3, ¡comencé increíblemente rápido! (EDITAR: pero solo para pequeños .svgs; intente inkview /usr/share/inkscape/examples/*.svg*como dice la página de manual, también hay algunos pesados ​​allí ... Aún así, el inicio de la GUI es rápido.) Gracias por esa nota, @ DenilsonSá - ¡salud!
sdaau
1
Para SVG realmente grandes, inkview parece romperse.
CMCDragonkai
10

¿Qué quieres decir con 'pipe-able'?
fehes muy buen visor de línea de comandos con toneladas de opciones.

Ivan Petrushev
fuente
1
Quiero decir que acepta la entrada de stdin, y adivina el tipo MIME si es posible. O especifique la extensión explícitamente si no puede adivinar el tipo de archivo heurísticamente.
Xiè Jìléi
11
fehno parece admitir SVG en absoluto; Me sale " feh WARNING: pySVGLogo.svg - No Imlib2 loader for that file format" ... ¡Salud!
sdaau
1
Algunas notas más: primero, feh página de inicio , ejemplos y capturas de pantalla ; segundo ( ubuntu 10.04.3 ): se inicia muy rápido; tiene el paquete Debian / Ubuntu; tiene una interacción un poco extraña con el mouse (ver feh --helpal final); Puedo cargar un directorio de pngs, y mantener presionado o (teclas de flecha), se carga tan rápido que parece (o mejor que) un .gif animado :)... ¡Salud!
sdaau
1
@sdaau, feh de hecho no es compatible con SVG, por lo que no es una respuesta útil para el OP.
Dylan Thurston
8

Por lo general, trabajo con SVG como archivos de texto, por lo que me gustaría que el espectador actualice automáticamente la pantalla tan pronto como se guarde el archivo (y se modifique su contenido), creo que esto debería aplicarse a situaciones 'pipables', es decir, con nombre tubería).

Tenga en cuenta que, para las aplicaciones predeterminadas de Gnome:

  • evinceactualmente funciona así para archivos PDF, pero aparentemente no puede leer SVG (para mí genera " Unable to open document - Error opening file: Permission denied" cuando intenté cargar archivos SVG)
  • eog(Eye Of Gnome) - las últimas versiones - también puede detectar si un archivo cambió en esto, y luego ofrecer un botón 'Recargar'; pero aparentemente, todavía tendría que hacer clic en 'Recargar' cada vez (no puedo ver una manera de causar la recarga automática siempre en el cambio de archivo eog, como se evincecomporta con PDF) y también, al menos en mi Ubuntu 10.04, eogsoporte SVG está algo roto (amplía los resultados con líneas borrosas)
  • ImageMagick displayno solo no se actualiza automáticamente cuando el archivo cambia en el disco, e incluso cuando presiona 'actualizar' display, todavía no obtiene la última versión del archivo (lo que significa que debe reiniciar displaypara mostrar la última versión :() .

Aquí hay algunas notas más que encontré hasta ahora:

  • Squiggle, el navegador SVG El navegador SVG que forma parte del kit de herramientas Batik. - Descarga Batik batik-1.7.zip; descomprimirlo; corre java -jar batik-squiggle.jary ahí está; no actualiza la imagen automáticamente si el archivo svg cambió en el disco
  • SVG Image Viewer? - Recomendaciones de los foros de Ubuntu :
    • En la publicación # 8 - " Escribí un pequeño script de Python ... Simplemente lo ejecutas como: svg_compare.py y abre un svg y lo muestra usando una biblioteca de svg y la biblioteca de ráster de gtk. Puedes hacer zoom con el mouse. .. "
    • xsvg(de http://cairographics.org ) - Instalé libsvg1_0.1.4-1_i386.deb , libsvg-cairo1_0.1.6-5_i386.deb y xsvg_0.2.1-3_i386.deb en ese orden; esas versiones son de 2005, por lo que xsvges extremadamente simple: sin zoom, nada ... Y no hace falta decir que no reacciona automáticamente a los cambios guardados en el archivo ...
  • a través de eso, encontré rsvg-view, de lo que creo que es parte sudo apt-get install librsvg2-bin. Es pequeño, agradable, admite stdin; sin embargo, tampoco rsvg-viewpuede detectar un cambio de archivo y actualizarlo automáticamente.

Sí, bueno, espero que esto ayude ...
¡Salud!

 

EDITAR (24 de diciembre de 2010): bueno, aquí también está mi contribución: svg_refreshview.py , que es básicamente una revisión de lo svg_compare.pymencionado anteriormente, que simplemente muestra un archivo SVG, recarga el archivo y actualiza la pantalla si el archivo ha sido modificado . ( Realmente no puede funcionar con stdin, pero hay otros scripts en mi repositorio que analizan stdin en python, tal vez ayuden ).

EDIT2 (20 de mayo de 12): también se me ocurrió un ejemplo de script Perl-Tk, que es muy burdo ( sin interacción del mouse, sin nada ), pero usa ImageMagick Perl API, y así puede renderizar SVG (como mapa de bits en un lienzo ), consulte la respuesta # 10670039 - ImageMagick API para la interfaz de la aplicación GUI de línea de comandos para display- Desbordamiento de pila .

sdaau
fuente
Es tan de vez en cuando, que he parcheado las Reloadcosas de eogSÓLO AYER! ¡Odio ese botón también!
Xiè Jìléi
Y, le dirá otra verdad, el displayviene de ImageMagickno escala bien SVG, ya que rasterizar el gráfico antes de que aparezca. Y lo que es peor, displayy rsvgno funciona con algunos de mis archivos SVG. Hasta ahora, solo FireFox se procesa correctamente. Firefox supera a todos.
Xiè Jìléi
Hola @ 谢 继 雷, gracias por los comentarios! Bueno, acabo de editar mi publicación y agregué un enlace a un script de Python que acabo de armar. Pruébalo, tal vez ayude ... ¡Salud! También +1 en el "odio ese botón" :) [aunque, debo admitir: siempre prefiero tener un botón para hacer algo manualmente, que no tenerlo :) ... solo me gustaría actualizar automáticamente extra :)]
sdaau
4

Secundo la recomendación de Dennis Williamson de ImageMagick display.

Además, a veces puede usar canalizaciones con nombre para canalizar datos a programas que leen de un archivo.

Ejemplo:

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

Sin embargo, no funcionará con programas que esperan poder buscar hacia atrás en el archivo.

Jukka Matilainen
fuente
Este uso de canalización con nombre es muy creativo, gracias. Después de intentarlo, descubrí que me tomó un tiempo iniciar, es un editor funcional completo en lugar de un simple visor.
Xiè Jìléi
3

Parece que el visor Geeqie maneja gráficos svg y carga automáticamente las imágenes actualizadas. No sé si puede tomar imágenes de stdin. Espero que ayude.

Rayo
fuente