Esiste un visualizzatore di immagini che acquisisce immagini su STDIN?


33

Sto cercando un visualizzatore di immagini che acquisisca dati stdine possa essere eseguito come:

cat image.png | imageviewer

Risposte:


40

Il displayprogramma di ImageMagick farà proprio questo, supponendo che lo installi qualcosa che capisce.

cat image.png | display

e si aprirà una finestra che mostra quell'immagine.


1
Nella versione ImageMagick 6.8.8-1 Q16 i686 2014-01-04devo passare anche -come parametro: $ cat image.png | display -o $ display - < image.png.
Emil Lundberg,


7

Su Linux (e probabilmente sui BSD), quasi tutti - se dai /dev/stdinil percorso. Questo comprende: xloadimage, feh, Eye of GNOME ( eog).

eog /dev/stdin < "$file"

(Tuttavia, non tutti funzionano bene con file speciali. GThumb non ha superato il test, ad esempio.)


3
Questo non funziona: cat graph.png | eog / dev / stdin
bukzor,

5
@Naga: ne è < "$file"stato un esempio. Il punto era se il programma può accettare un flusso arbitrario, sia esso un semplice reindirizzamento o qualcosa di più avanzato (come fornire un'immagine tramite stdin, una pipe denominata, una sostituzione di processo, un socket o un dispositivo carattere). Il problema è che molti visualizzatori richiedono che il fd sia ricercabile, come lo sono solo i normali file e dispositivi a blocchi.
gravità

3
Come ha sottolineato @bukzor, cat graph.png | eog /dev/stdinfallisce, ma eog /dev/stdin < graph.pngfunziona.
Denilson Sá Maia,

2
Esiste un modo per far funzionare questo metodo anche con piping ( |)?
Tarrasch,

1
Sembra che eogstia cercando informazioni sul descrittore di file (che riesce nel caso speciale che sia stato reindirizzato direttamente da un file), mentre i normali programmi Unix prenderanno l'input indipendentemente da dove provenga. Quindi eognon funzionerà per lo stdin generale. Un altro programma che funziona è gwenview /dev/stdin(il visualizzatore di immagini di KDE).
Lumaca meccanica

3

Un FIFO potrebbe lavorare con eogla mancanza di supporto per le tubazioni:

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

AFAIK questo dovrebbe funzionare.


3

Puoi usare Feh, è ​​abbastanza veloce.

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

feh è un visualizzatore di immagini leggero che si trova nei repository predefiniti di molte distribuzioni Linux. È rivolto in particolare agli utenti della riga di comando che necessitano di un visualizzatore di immagini veloce senza enormi dipendenze dalla GUI.


2
Puoi espandere un po 'la tua risposta? Il solo fatto di menzionare un prodotto (è un comando, un prodotto o un'espressione di indifferenza?), Non spiega davvero come realizzare la soluzione. È meglio spiegare come utilizzare il prodotto per risolvere il problema, o almeno descrivere ciò che rende il prodotto una buona soluzione, non solo un successo casuale di Google. Una buona guida per consigliare il software qui: meta.superuser.com/questions/5329/… . Grazie.
fixer1234,

1
La domanda è molto specifica, ho dato una risposta specifica. E per l'amor di Dio c'è una riga di comando proprio sopra di noi.
MaikoID,
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.