SVG da riga di comando e visualizzatore di file immagine in Linux?


36

Esiste un visualizzatore di grafici a riga di comando (compatibile con pipe) per file di immagine SVG e JPG / PNG?

Soprattutto, i file di grafici / immagini vengono emessi attraverso la linea di tubazioni, anziché i file semplici, quindi deve essere disponibile un'opzione per specificare il tipo / estensione di file.

Sebbene gv funzioni per PS / PDF generato da programmi dot, mi piacerebbe sapere se ci sono alternative per supportare file immagine SVG ecc.


1
solo per chiarire: il tuo punto principale non è quello di visualizzare .svg, .jpg e .png sulla console ("riga di comando"), ma piuttosto collegare tali tipi MIME a un normale programma grafico?
Akira,

1
Sì, vorrei visualizzare in X. Proprio come gv. Ma gv non supporta SVG, ecc.
Xiè Jìléi,

gwenviewabbastanza veloce, mi chiedo se soddisfa le tue esigenze?
Aquarius Power il

Risposte:


37

Hai provato il displayprogramma fornito con ImageMagick ?


3
AFAIK, Imagemagick da solo non può visualizzare file SVG, ha bisogno di uno strumento che converta SVG in bitmap. Su Debian, sudo aptitude install librsvg2-binè necessario se "rsvg-convert" non è ancora installato. Il pacchetto contiene anche un visualizzatore rsvg-view-3con zoom migliore di display.
Mytskine,

2
@Mytskine: secondo la documentazione di ImageMagick , utilizzerà il proprio renderer SVG interno se Inkscape o RSVG non sono disponibili.
In pausa fino a nuovo avviso.

1
Sul mio sistema: inkscapeè lento da caricare, inkviewè veloce ma non riesci a cambiare vista? displayfunziona benissimo per me :-)
Hugh Perkins,

Non sono riuscito a ottenere il lavoro di Inkview dall'input di pipe, ma il display fa esattamente quello che voglio comunque :-) Lo uso come go run my_svg_generator.go | displaythx.
JepZ

1
AVVERTIMENTO!!!! non usare il display se sei di fretta !!! per un file svg da 500kb (di analisi dei problemi di avvio di systemd), ci sono voluti 20 minuti prima che potessi riutilizzare la mia macchina, poiché utilizzava 4 GB (richiesti 7 GB di virt.mem) della mia RAM già gonfiata da 6 GB e stava scambiando molto (5 GB è andato a scambiare solo a causa della visualizzazione) :(, non sono sicuro delle prestazioni di qualsiasi altra opzione per visualizzare svg tho., gwenviewabbastanza veloce tra
Aquarius Power

12

Inkscape è già dotato di un proprio visualizzatore:inkview

Manca di funzionalità, potrebbe essere un po 'lento, ma funziona (e probabilmente rende SVG più accurato di ImageMagick display).


Volevo solo notare che ho provato inkview(credo da 0,48 inkscape) su Ubuntu 10.04.3, avviato incredibilmente veloce! (MODIFICA: ma solo per i piccoli .svg; prova inkview /usr/share/inkscape/examples/*.svg*come dice la pagina man, ci sono anche alcuni punti pesanti ... Comunque, l'avvio della GUI è veloce.) Grazie per quella nota, @ DenilsonSá - evviva!
sdaau,

1
Per SVG davvero grandi, Inkview sembra rompersi.
CMCDragonkai,

10

Cosa intendi con "pipe-grado"?
fehè un ottimo visualizzatore da riga di comando con tonnellate di opzioni.


1
Voglio dire, accetta input da stdin e indovina il tipo MIME, se possibile. O specificando l'estensione in modo esplicito se non è in grado di indovinare euristicamente il tipo di file.
Xiè Jìléi,

11
fehnon sembra affatto supportare SVG; Ottengo " feh WARNING: pySVGLogo.svg - No Imlib2 loader for that file format" ... Cin cin!
sdaau,

1
Qualche nota in più: prima, feh homepage , esempi e schermate ; secondo ( ubuntu 10.04.3 ): si avvia molto velocemente; ha un pacchetto Debian / Ubuntu; ha un'interazione un po 'strana con il mouse (vedi feh --helpalla fine); Posso caricare una directory di pngs, e tenere premuto o (tasti freccia), si carica così velocemente da sembrare (o meglio di) un GIF animato :)... Saluti!
sdaau,

1
@sdaau, feh in effetti non supporta SVG, quindi non è una risposta utile all'OP .
Dylan Thurston,

8

Di solito lavoro con SVG come file di testo, quindi vorrei che il visualizzatore aggiornasse automaticamente il display non appena il file è stato salvato (e il suo contenuto è stato modificato) - questo dovrebbe essere applicabile a situazioni 'pipable', penso (cioè con un nome tubi).

Nota che, per le app Gnome predefinite:

  • evinceattualmente funziona così per i PDF, ma a quanto pare non è in grado di leggere SVG (per me genera " Unable to open document - Error opening file: Permission denied" quando ho provato a caricare file SVG)
  • eog(Eye Of Gnome) - le ultime versioni - può anche rilevare se un file è cambiato su questo, e quindi offrire un pulsante 'Ricarica'; ma a quanto pare, dovresti comunque fare clic su "Ricarica" ​​ogni volta (non riesco a vedere un modo per causare il ricaricamento automatico sempre al cambio del file eog, come evincesi comporta con i PDF) - e anche, almeno sul mio Ubuntu 10.04, eogsupporto SVG è un po 'rotto (ingrandisci i risultati con linee sfocate)
  • ImageMagick displaynon solo non si aggiorna automaticamente quando il file cambia su disco - e anche quando si preme 'aggiorna' display, non si ottiene ancora l'ultima versione del file (il che significa che è necessario riavviare displayper mostrare l'ultima versione :() .

Ecco alcune altre note che ho trovato finora:

  • Squiggle, il browser SVG Il browser SVG che fa parte del toolkit Batik. - Scarica Batik batik-1.7.zip; decomprimerlo; corri java -jar batik-squiggle.jared eccolo lì; non aggiorna l'immagine automaticamente se il file svg è cambiato sul disco
  • Visualizzatore di immagini SVG? - Consigli sui forum Ubuntu :
    • Nel post n. 8 - " Ho scritto un piccolo script Python ... Lo esegui semplicemente come: svg_compare.py e apre uno svg e lo visualizza usando una libreria svg e usando la libreria raster di gtk. Puoi ingrandire con il mouse. .. "
    • xsvg(da http://cairographics.org ) - Ho installato libsvg1_0.1.4-1_i386.deb , libsvg-cairo1_0.1.6-5_i386.deb e xsvg_0.2.1-3_i386.deb in questo ordine; quelle versioni sono del 2005, quindi xsvgè estremamente semplice - niente zoom, niente .. E inutile dirlo, non reagisce automaticamente alle modifiche ai file salvati ...
  • attraverso ciò, ho scoperto rsvg-view, di cui credo faccia parte sudo apt-get install librsvg2-bin. È piccolo, carino e supporta lo stdin, tuttavia rsvg-viewnon è in grado di rilevare una modifica del file e di aggiornarlo automaticamente.

Sì - beh, spero che questo aiuti ...
Saluti!

 

EDIT (24 dicembre '10): ecco anche il mio contributo: svg_refreshview.py - che è fondamentalmente una rielaborazione di svg_compare.pycui sopra, che mostra semplicemente un file SVG, ricarica il file e aggiorna il display se il file è stato modificato . ( non può davvero funzionare con stdin - ma ci sono altri script nel mio repository che analizzano stdin in Python, forse aiuteranno ).

EDIT2 (20 maggio 12): Inoltre, è uscito un esempio di script Perl-Tk, che è molto rozzo ( nessuna interazione con il mouse, niente di niente ), ma utilizza ImageMagick Perl API e quindi può rendere SVG (come bitmap su una tela ), vedere la risposta # 10670039 - API ImageMagick per l'interfaccia dell'applicazione della GUI della riga di comando su display- StackTranslate.it .


È così occasionale, ho patchato la Reloadroba di eogJUST YESTERDAY! Odio anche quel pulsante!
Xiè Jìléi,

E, a dirti un'altra verità, la displayprovenienza ImageMagicknon scala bene SVG, perché ha rasterizzato il grafico prima di visualizzarlo. E ancora peggio, displaye rsvgnon funziona con alcuni dei miei file SVG. Fino ad ora, solo FireFox viene visualizzato correttamente. FireFox batte tutto.
Xiè Jìléi,

Ciao @ 谢 继 雷, grazie per i commenti! Bene - ho appena modificato il mio post e aggiunto un link a uno script Python che ho appena messo insieme - provalo, forse aiuta ... Saluti! Anche +1 sul "odio quel pulsante" :) [anche se, devo ammettere: preferirei sempre avere un pulsante per fare qualcosa manualmente - piuttosto che non averlo :) ... Mi piacerebbe solo l'aggiornamento automatico extra :)]
sdaau,

4

Secondo la raccomandazione di Dennis Williamson di ImageMagick display.

Inoltre, a volte è possibile utilizzare pipe denominate per reindirizzare i dati ai programmi che leggono da un file.

Esempio:

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

Tuttavia, non funzionerà con programmi che prevedono di poter cercare indietro nel file.


Questo utilizzo di named pipe è molto creativo, grazie. Dopo un tentativo, ho scoperto che l'avvio è durato un po ', è un editor completamente funzionale piuttosto che un semplice visualizzatore.
Xiè Jìléi,

3

Sembra che Geeqie Viewer gestisca la grafica svg e carica automaticamente le immagini aggiornate. Non so se può prendere immagini dallo stdin. Spero possa essere d'aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.