Gibt es einen Bildbetrachter, der Bilder auf STDIN aufnimmt?

7923
SL9

Ich suche nach einem Bildbetrachter, der Daten aufnimmt stdinund wie folgt ausgeführt werden kann:

cat image.png | imageviewer 
30

5 Antworten auf die Frage

36
erjiang

Das displayProgramm von ImageMagick wird genau das tun, vorausgesetzt, Sie leiten es so, dass es es versteht.

cat image.png | display 

und es öffnet sich ein Fenster mit diesem Bild.

Bei Version `ImageMagick 6.8.8-1 Q16 i686 2014-01-04` muss ich auch` -` als Parameter übergeben: `$ cat image.png | display -` oder `$ display - <image.png`. Emil Lundberg vor 10 Jahren 1
11
Ignacio Vazquez-Abrams

ImageMagick's display.

display < foo.png 
6
grawity

Unter Linux (und wahrscheinlich BSDs) fast alle - wenn Sie /dev/stdinden Pfad angeben. Dazu gehören: xloadimage, feh, Eye of GNOME ( eog).

eog /dev/stdin < "$file" 

(Nicht alle von ihnen funktionieren jedoch gut mit speziellen Dateien. GThumb hat zum Beispiel den Test nicht bestanden.)

Das funktioniert nicht: cat graph.png | eog / dev / stdin bukzor vor 13 Jahren 3
Wenn wir "$ file" kennen, denke ich, dass wir eog "$ file" ausgeben können. Naga Kiran vor 12 Jahren 0
@Naga: Das `<" $ file "` war ein Beispiel. Es ging darum, ob das Programm einen beliebigen Stream akzeptieren kann, sei es eine einfache Umleitung oder etwas Fortgeschrittenes (z. B. Bereitstellung eines Images über stdin, eine Named Pipe, Prozessersetzung, einen Socket oder ein Zeichengerät). Das Problem ist, dass viele Zuschauer verlangen, dass fd gesucht werden muss, was nur reguläre Dateien und Blockgeräte sind. grawity vor 12 Jahren 5
@Bukzor wies darauf hin, dass cat graph.png | eog / dev / stdin` schlägt fehl, aber `eog / dev / stdin <graph.png` funktioniert. Denilson Sá Maia vor 12 Jahren 3
Gibt es eine Möglichkeit, diese Methode auch mit Piping (`|`) zum Laufen zu bringen? Tarrasch vor 11 Jahren 2
Es sieht so aus, als würde "eog" Informationen über den Dateideskriptor nachschlagen (was in dem speziellen Fall gelingt, dass er direkt aus einer Datei umgeleitet wurde), wohingegen normale Unix-Programme die Eingabe unabhängig von ihrer Herkunft übernehmen. `Eog` funktioniert also nicht für allgemeine stdin. Ein anderes Programm, das funktioniert, ist "gwenview / dev / stdin" (der KDE-Bildbetrachter). Mechanical snail vor 10 Jahren 1
Wie die Antwort von MaikoID zeigt, `... | feh -` arbeitet. Aber `... | feh / dev / stdin` schlägt fehl. Camille Goudeseune vor 7 Jahren 0
3
Nathan Ringo

Ein FIFO könnte mit eogder fehlenden Unterstützung für Rohrleitungen funktionieren :

mkfifo $; cat $ > $ &; eog /dev/stdin < $; rm $; 

AFAIK sollte dies funktionieren.

2
MaikoID

Sie können feh verwenden, es ist ziemlich schnell.

cat image.png | feh --scale-down - 

feh ist ein einfacher Image-Viewer, der sich in den Standard-Repositorys vieler Linux-Distributionen befindet. Es richtet sich insbesondere an Benutzer der Befehlszeile, die einen schnellen Bildbetrachter ohne große Abhängigkeit von der grafischen Benutzeroberfläche benötigen.

Kannst du deine Antwort etwas erweitern? Nur ein Produkt zu erwähnen (ist das ein Befehl, ein Produkt oder ein Ausdruck von Gleichgültigkeit?), Erklärt nicht wirklich, wie die Lösung zu erreichen ist. Es ist besser zu erklären, wie das Produkt zur Lösung des Problems verwendet wird, oder zumindest zu beschreiben, warum das Produkt eine gute Lösung ist und nicht nur ein zufälliger Google-Treffer. Eine gute Anleitung, um Software hier zu empfehlen: http://meta.superuser.com/questions/5329/how-do-i-recommend-software-in-my-answers. Vielen Dank. fixer1234 vor 7 Jahren 2
Die Frage ist sehr konkret, ich habe eine konkrete Antwort gegeben. Und um Himmels willen gibt es eine Befehlszeile direkt über uns. MaikoID vor 7 Jahren 1