Existe-t-il une visionneuse d'images qui prend des images sur STDIN?

33

Je recherche une visionneuse d'images qui prend des données stdinet peut être exécutée comme:

cat image.png | imageviewer
SL9
la source

Réponses:

40

Le displayprogramme ImageMagick fera exactement cela, en supposant que vous lui redirigez quelque chose qu'il comprend.

cat image.png | display

et il apparaîtra une fenêtre montrant cette image.

erjiang
la source
1
Sur la version, ImageMagick 6.8.8-1 Q16 i686 2014-01-04je dois également passer -en paramètre: $ cat image.png | display -ou $ display - < image.png.
Emil Lundberg
12

ImageMagick display.

display < foo.png
Ignacio Vazquez-Abrams
la source
7

Sur Linux (et probablement BSD), presque tous - si vous donnez /dev/stdincomme chemin. Cela comprend: xloadimage, feh, Eye of GNOME ( eog).

eog /dev/stdin < "$file"

(Cependant, tous ne fonctionnent pas bien avec des fichiers spéciaux. GThumb a échoué au test, par exemple.)

Grawity
la source
3
Cela ne fonctionne pas: cat graph.png | eog / dev / stdin
bukzor
5
@Naga: < "$file"C'était un exemple. Le point était de savoir si le programme peut accepter un flux arbitraire, que ce soit une simple redirection ou quelque chose de plus avancé (comme fournir une image via stdin, un canal nommé, une substitution de processus, une socket ou un périphérique de caractères). Le problème est que de nombreux téléspectateurs exigent que le fd soit recherché, ce que seuls les fichiers normaux et les périphériques de blocage sont.
grawity
3
Comme l'a souligné @bukzor, cat graph.png | eog /dev/stdinéchoue, mais eog /dev/stdin < graph.pngfonctionne.
Denilson Sá Maia
2
Existe-t-il un moyen de faire fonctionner cette méthode avec piping ( |) également?
Tarrasch
1
Il semble eogrechercher des informations sur le descripteur de fichier (ce qui réussit dans le cas particulier où il a été redirigé directement à partir d'un fichier), tandis que les programmes Unix normaux prendront juste l'entrée, peu importe d'où il vient. Donc ça eogne marchera pas pour le général stdin. Un autre programme qui fonctionne est gwenview /dev/stdin(le visualiseur d'images KDE).
Escargot mécanique
3

Un FIFO pourrait fonctionner avec eogle manque de support de tuyauterie:

mkfifo ${tmpfilename};
cat ${file} > ${tmpfilename} &;
eog /dev/stdin < ${tmpfilename};
rm ${tmpfilename};

AFAIK cela devrait fonctionner.

Nathan Ringo
la source
3

Vous pouvez utiliser feh, c'est assez rapide.

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

feh est une visionneuse d'images légère qui se trouve dans les référentiels par défaut de nombreuses distributions Linux. Il est particulièrement destiné aux utilisateurs de ligne de commande qui ont besoin d'une visionneuse d'images rapide sans grandes dépendances de l'interface graphique.

MaikoID
la source
2
Pouvez-vous développer un peu votre réponse? La simple mention d'un produit (est-ce une commande, un produit ou une expression d'indifférence?), N'explique pas vraiment comment accomplir la solution. Il vaut mieux expliquer comment utiliser le produit pour résoudre le problème, ou au moins décrire ce qui fait du produit une bonne solution, pas seulement un succès aléatoire de Google. De bons conseils pour recommander des logiciels ici: meta.superuser.com/questions/5329/… . Merci.
fixer1234
1
La question est très précise, j'ai donné une réponse précise. Et pour l'amour de Dieu, il y a une ligne de commande juste au-dessus de nous.
MaikoID