Czy istnieje przeglądarka zdjęć, która wykonuje zdjęcia w STDIN?

33

Szukam przeglądarki zdjęć, która pobiera dane stdini może być uruchamiana w następujący sposób:

cat image.png | imageviewer
SL9
źródło

Odpowiedzi:

40

displayProgram ImageMagick zrobi to samo, zakładając, że potokujesz coś, co rozumie.

cat image.png | display

i pojawi się okno pokazujące ten obraz.

erjiang
źródło
1
W wersji ImageMagick 6.8.8-1 Q16 i686 2014-01-04muszę również podać -jako parametr: $ cat image.png | display -lub $ display - < image.png.
Emil Lundberg
12

ImageMagick's display.

display < foo.png
Ignacio Vazquez-Abrams
źródło
7

W systemie Linux (i prawdopodobnie BSD) prawie wszystkie - jeśli podasz /dev/stdinścieżkę. Obejmuje to: xloadimage, feh, Eye of GNOME ( eog).

eog /dev/stdin < "$file"

(Jednak nie wszystkie z nich działają dobrze ze specjalnymi plikami. Na przykład GThumb nie zdał testu.)

grawitacja
źródło
3
To nie działa: cat graph.png | eog / dev / stdin
bukzor
5
@Naga: To < "$file"był przykład. Chodziło o to, czy program może zaakceptować dowolny strumień, czy to zwykłe przekierowanie, czy coś bardziej zaawansowanego (na przykład dostarczenie obrazu za pomocą standardowego wejścia, nazwanego potoku, podstawienia procesu, gniazda lub urządzenia znakowego). Problem polega na tym, że wiele przeglądarek wymaga, aby fd był widoczny, czyli tylko zwykłe pliki i urządzenia blokujące.
grawity
3
Jak zauważył @bukzor, cat graph.png | eog /dev/stdinzawodzi, ale eog /dev/stdin < graph.pngdziała.
Denilson Sá Maia
2
Czy jest jakiś sposób, aby ta metoda działała również z piping ( |)?
Tarrasch
1
Wygląda na eogto, że szuka informacji o deskryptorze pliku (co udaje się w szczególnym przypadku, gdy został przekierowany bezpośrednio z pliku), podczas gdy normalne programy uniksowe po prostu pobierają dane wejściowe niezależnie od tego, skąd pochodzą. Więc eognie zadziała dla ogólnego standardu. Kolejnym działającym programem jest gwenview /dev/stdin(przeglądarka obrazów KDE).
Ślimak mechaniczny
3

FIFO może pracować z eogbrakiem obsługi rurociągów:

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

AFAIK to powinno działać.

Nathan Ringo
źródło
3

Możesz użyć feh, jest dość szybki.

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

feh to lekka przeglądarka obrazów, która znajduje się w domyślnych repozytoriach wielu dystrybucji Linuksa. Jest szczególnie przeznaczony dla użytkowników wiersza poleceń, którzy potrzebują szybkiej przeglądarki obrazów bez ogromnych zależności GUI.

MaikoID
źródło
2
Czy możesz trochę rozszerzyć swoją odpowiedź? Samo wspomnienie o produkcie (czy to polecenie, produkt czy wyraz obojętności?) Tak naprawdę nie wyjaśnia, jak osiągnąć rozwiązanie. Lepiej wyjaśnij, jak używać produktu do rozwiązania problemu, lub przynajmniej opisz, co sprawia, że ​​produkt jest dobrym rozwiązaniem, a nie tylko przypadkowym działaniem Google. Dobre prowadzenie na polecenia oprogramowania tutaj: meta.superuser.com/questions/5329/... . Dzięki.
fixer1234
1
Pytanie jest bardzo konkretne, udzieliłem konkretnej odpowiedzi. Na miłość boską, nad nami jest linia poleceń.
MaikoID