Kommandozeilen SVG und Image File Viewer unter Linux?

36

Gibt es einen (Pipe-fähigen) Befehlszeilen-Grafik-Viewer für SVG- und JPG / PNG-Bilddateien?

Insbesondere werden die Grafik- / Bilddateien über die Pipeline ausgegeben und nicht über einfache Dateien. Daher muss die Option zur Angabe des Dateityps / der Dateierweiterung vorhanden sein.

Obwohl gv für PS / PDF-Dateien funktioniert, die mit Punktprogrammen erstellt wurden, würde ich gerne wissen, ob es Alternativen für die Unterstützung von SVG-Bilddateien usw. gibt.

Xiè Jìléi
quelle
1
Nur zur Verdeutlichung: Ihr Hauptziel ist es nicht, die Dateien .svg, .jpg und .png auf der Konsole anzuzeigen ("Befehlszeile"), sondern solche MIME-Typen an ein normales Grafikprogramm weiterzuleiten?
Akira
1
Ja, ich möchte in X anzeigen. Genau wie bei gv. Aber gv unterstützt kein SVG usw.
Xiè Jìléi
gwenviewziemlich schnell, frage mich, ob es Ihren Bedürfnissen entspricht?
Aquarius Power

Antworten:

37

Haben Sie das displayProgramm ausprobiert , das mit ImageMagick geliefert wird ?

Bis auf weiteres angehalten.
quelle
3
AFAIK, Imagemagick alleine kann keine SVG-Dateien anzeigen, es benötigt ein Tool, das SVG in Bitmap konvertiert. Unter Debian sudo aptitude install librsvg2-binist es notwendig, wenn "rsvg-convert" noch nicht installiert ist. Das Paket enthält außerdem einen Viewer rsvg-view-3mit einem besseren Zoom als display.
Mytskine
2
@Mytskine: Laut ImageMagick-Dokumentation wird ein eigener interner SVG-Renderer verwendet, wenn Inkscape oder RSVG nicht verfügbar sind.
Bis auf weiteres angehalten.
1
Auf meinem System: inkscapeIst das Laden langsam, inkviewist es schnell, kann aber die Ansicht scheinbar nicht ändern? displayFunktioniert hervorragend für mich :-)
Hugh Perkins
Ich habe es nicht geschafft, Inkview-Arbeit von der Pipe-Eingabe zu bekommen, aber das Display macht genau das, was ich will :-) Ich benutze es wie go run my_svg_generator.go | displaythx.
JepZ
1
WARNUNG!!!! Verwenden Sie das Display nicht, wenn Sie es eilig haben !!! Bei einer 500-KB-SVG-Datei (zur Analyse von System- und Startproblemen) dauerte es 20 Minuten, bis ich meinen Computer wieder verwenden konnte, da 4 GB (angeforderte 7 GB virt.mem) meines bereits aufgeblähten 6-GB-Arbeitsspeichers verwendet wurden und eine große Menge (5 GB) ausgetauscht wurden ging nur wegen der Anzeige zu tauschen) :(, nicht sicher über die Leistung einer anderen Option zur Visualisierung von svg tho., gwenviewziemlich schnell übrigens
Aquarius Power
12

Inkscape wird bereits mit einem eigenen Viewer geliefert:inkview

Es fehlen Funktionen, es ist vielleicht etwas langsam, aber es funktioniert (und rendert SVG wahrscheinlich genauer als ImageMagicks display).

Denilson Sá Maia
quelle
Ich wollte nur erwähnen, dass ich inkview(glaube ich ab 0.48 inkscape) Ubuntu 10.04.3 ausprobiert habe und erstaunlich schnell gestartet bin! (EDIT: aber nur für kleine .svgs; try , inkview /usr/share/inkscape/examples/*.svg*wie der Mann Seite sagt, gibt es einige Heavies sind auch da ... Trotzdem GUI Inbetriebnahme ist schnell.) Vielen Dank für die Anmerkung, @ DenilsonSá - Prost!
Sdaau
1
Bei sehr großen SVGs scheint das InkView nicht mehr zu funktionieren.
CMCDragonkai
10

Was meinst du mit "rohrfähig"?
fehist ein sehr guter Kommandozeilen-Viewer mit unzähligen Optionen.

Ivan Petrushev
quelle
1
Ich meine, es akzeptiert Eingaben von stdin und errate den MIME-Typ, wenn möglich. Oder geben Sie die Erweiterung explizit an, wenn der Dateityp heuristisch nicht erraten werden kann.
Xiè Jìléi
11
fehscheint SVG überhaupt nicht zu unterstützen; Ich bekomme " feh WARNING: pySVGLogo.svg - No Imlib2 loader for that file format" ... Prost!
Sdaau
1
Noch ein paar Anmerkungen: erstens feh Homepage , Beispiele und Screenshots ; zweite ( Ubuntu 10.04.3 ): startet sehr schnell; hat Debian / Ubuntu-Paket; hat eine etwas seltsame Mausinteraktion (siehe feh --helpam Ende); Ich kann ein Verzeichnis von pngs laden und halten oder (Pfeiltasten) gedrückt, es wird so schnell geladen , dass es aussieht wie (oder besser als) ein animiertes .gif :)... Prost!
Sdaau
1
@sdaau, feh unterstützt zwar kein SVG, ist also keine sinnvolle Antwort auf das OP.
Dylan Thurston
8

Normalerweise arbeite ich mit SVG als Textdatei. Daher möchte der Betrachter, dass die Anzeige automatisch aktualisiert wird, sobald die Datei gespeichert (und ihr Inhalt geändert) wird. Dies sollte meiner Meinung nach für "pipable" Situationen gelten (dh mit named) Rohre).

Beachten Sie bei Gnome-Standardanwendungen Folgendes:

  • evinceDerzeit funktioniert dies für PDFs, aber anscheinend kann es SVG nicht lesen (für mich " Unable to open document - Error opening file: Permission denied" wird es generiert, als ich versuchte, SVG-Dateien zu laden).
  • eog(Eye Of Gnome) - die neuesten Versionen - können auch feststellen, ob sich eine Datei in diesem Bereich geändert hat, und bieten dann die Schaltfläche "Neu laden" an. aber anscheinend müssten Sie immer noch jedes Mal auf "Neu laden" klicken (ich kann keine Möglichkeit finden, das automatische Neuladen immer beim Ändern von Dateien zu veranlassen eog, wie dies evincebei PDFs der Fall ist) - und zumindest bei meinem Ubuntu 10.04 eogSVG-Support ist etwas kaputt (Ergebnisse mit verschwommenen Linien einzoomen)
  • ImageMagick wird displaynicht nur nicht automatisch aktualisiert, wenn sich die Datei auf der Festplatte ändert - und selbst wenn Sie auf "Aktualisieren" klicken display, erhalten Sie immer noch nicht die neueste Version der Datei (dh, Sie müssen neu starten display, um die neueste Version anzuzeigen :() .

Hier sind einige weitere Notizen, die ich bisher gefunden habe:

  • Squiggle, der SVG-Browser Der SVG-Browser, der Teil des Batik-Toolkits ist. - Batik batik-1.7.zip herunterladen ; Pack es aus; laufen java -jar batik-squiggle.jarund da ist es; aktualisiert das Bild nicht automatisch, wenn sich die SVG-Datei auf der Festplatte geändert hat
  • SVG Image Viewer? - Ubuntu Forums Empfehlungen:
    • In Beitrag # 8 - " Ich habe ein kleines Python-Skript geschrieben ... Sie führen es einfach aus als: svg_compare.py und es öffnet ein SVG und zeigt es unter Verwendung einer SVG-Bibliothek und der Raster-Bibliothek von GTK an. Sie können mit der Maus zoomen. .. "
    • xsvg(von http://cairographics.org ) - Ich habe libsvg1_0.1.4-1_i386.deb , libsvg-cairo1_0.1.6-5_i386.deb und xsvg_0.2.1-3_i386.deb in dieser Reihenfolge installiert . Diese Versionen stammen aus dem Jahr 2005 und sind daher xsvgextrem einfach - kein Zoom, nichts .. Und natürlich reagiert es nicht automatisch auf gespeicherte Dateiänderungen ...
  • Dadurch habe ich herausgefunden rsvg-view, wovon ich denke, dass es ein Teil davon ist sudo apt-get install librsvg2-bin. Es ist klein, nett, unterstützt stdin - kann jedoch auch rsvg-viewkeine Dateiänderung erkennen und wird automatisch aktualisiert.

Yup - nun, ich hoffe das hilft ...
Prost!

 

EDIT (24. Dezember '10): na ja, hier ist auch mein Beitrag: svg_refreshview.py - das ist im Grunde eine Nachbesserung von svg_compare.pyoben erwähnt, dass einfach eine SVG - Datei zeigt, und lädt die Datei und aktualisiert die Anzeige , wenn die Datei geändert wurde . ( Es kann nicht wirklich mit stdin funktionieren - aber es gibt andere Skripte in meinem Repo, die stdin in Python analysieren, vielleicht helfen sie ).

EDIT2 (20. Mai 12): Es wurde auch ein Perl-Tk-Skript-Beispiel erstellt, das sehr grob ist ( keine Mausinteraktion, kein Nichts ), aber die ImageMagick-Perl-API verwendet und daher SVG (als Bitmap auf einer Zeichenfläche) rendern kann ), finden Sie in der Antwort 10670039 - ImageMagick-API Informationen zur Befehlszeilen-GUI-Anwendungsschnittstelle für display- Stack Overflow .

sdaau
quelle
Es ist so gelegentlich, dass ich die ReloadSachen von eogNUR GESTERN gepatcht habe! Ich hasse diesen Knopf auch!
Xiè Jìléi
Um ehrlich zu sein, der displayUrsprung von ImageMagickSVG lässt sich nicht gut skalieren, da das Diagramm vor der Anzeige gerastert wurde. Und noch schlimmer, displayund rsvgfunktioniert nicht mit einigen meiner SVG-Dateien. Bisher wird nur FireFox korrekt gerendert. Firefox schlägt alle.
Xiè Jìléi,
Hi @ 谢 继 雷, danke für die Kommentare! Nun, ich habe gerade meinen Beitrag bearbeitet und einen Link zu einem Python-Skript hinzugefügt, das ich gerade zusammengestellt habe. Probieren Sie es aus, vielleicht hilft es ... Prost! Auch +1 auf den "hasse diesen Knopf" :) [obwohl ich zugeben muss: Ich hätte immer lieber einen Knopf, um etwas manuell zu machen - als ihn nicht zu haben :) ... Ich möchte nur automatisch aktualisieren extra :)]
sdaau
4

Ich stimme Dennis Williamsons Empfehlung von ImageMagick zu display.

Manchmal können Sie auch Named Pipes verwenden, um Daten an Programme weiterzuleiten, die aus einer Datei lesen.

Beispiel:

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

Funktioniert jedoch nicht mit Programmen, die erwarten, in der Datei rückwärts zu suchen.

Jukka Matilainen
quelle
Diese Verwendung von Named Pipe ist sehr kreativ, danke. Nach einem Versuch habe ich festgestellt, dass es eine Weile gedauert hat, bis es gestartet ist. Es handelt sich eher um einen voll funktionsfähigen Editor als um einen einfachen Viewer.
Xiè Jìléi
3

Es scheint, dass Geeqie Viewer SVG-Grafiken verarbeitet und die aktualisierten Bilder automatisch lädt. Ich weiß nicht, ob es Bilder von stdin aufnehmen kann. Ich hoffe, es hilft.

Strahl
quelle