Apakah ada penampil gambar yang mengambil gambar pada STDIN?

33

Saya mencari penampil gambar yang mengambil data stdindan dapat dijalankan seperti:

cat image.png | imageviewer
SL9
sumber

Jawaban:

40

displayProgram ImageMagick akan melakukan hal itu, dengan asumsi Anda menyalurkan sesuatu yang ia pahami.

cat image.png | display

dan itu akan memunculkan jendela yang menunjukkan gambar itu.

erjiang
sumber
1
Pada versi ImageMagick 6.8.8-1 Q16 i686 2014-01-04saya juga harus lulus -sebagai parameter: $ cat image.png | display -atau $ display - < image.png.
Emil Lundberg
12

ImageMagick's display.

display < foo.png
Ignacio Vazquez-Abrams
sumber
7

Di Linux (dan kemungkinan BSD), hampir semuanya - jika Anda berikan /dev/stdinsebagai path. Ini termasuk: xloadimage, feh, Eye of GNOME ( eog).

eog /dev/stdin < "$file"

(Tapi tidak semuanya bekerja dengan baik dengan file khusus. GThumb gagal tes, misalnya.)

grawity
sumber
3
Ini tidak berfungsi: cat graph.png | eog / dev / stdin
bukzor
5
@Naga: Itu < "$file"contohnya. Intinya adalah apakah program dapat menerima aliran sewenang-wenang, baik itu pengalihan sederhana atau sesuatu yang lebih maju (seperti memberikan gambar melalui stdin, pipa bernama, substitusi proses, soket, atau perangkat karakter). Masalahnya adalah banyak pemirsa yang membutuhkan fd agar dapat dicari, yang hanya berupa file biasa dan perangkat pemblokiran.
grawity
3
Seperti @bukzor tunjukkan, cat graph.png | eog /dev/stdingagal, tetapi eog /dev/stdin < graph.pngberhasil.
Denilson Sá Maia
2
Apakah ada cara untuk membuat metode ini berfungsi dengan piping ( |) juga?
Tarrasch
1
Sepertinya eogmencari informasi pada deskriptor file (yang berhasil dalam kasus khusus yang diarahkan langsung dari file), sedangkan program Unix yang normal hanya akan mengambil input terlepas dari mana asalnya. Jadi eogtidak akan berfungsi untuk stdin umum. Program lain yang berfungsi adalah gwenview /dev/stdin(penampil gambar KDE).
Mekanik siput
3

FIFO dapat bekerja dengan eogkurangnya dukungan perpipaan:

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

AFAIK ini harus bekerja.

Nathan Ringo
sumber
3

Anda dapat menggunakan feh, cukup cepat.

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

feh adalah penampil gambar yang ringan yang berada dalam repositori default dari banyak distribusi Linux. Ini terutama ditujukan untuk pengguna baris perintah yang membutuhkan penampil gambar cepat tanpa ketergantungan GUI besar.

MaikoID
sumber
2
Bisakah Anda sedikit memperluas jawaban? Hanya menyebutkan produk (apakah itu perintah, produk, atau ekspresi ketidakpedulian?), Tidak benar-benar menjelaskan cara menyelesaikan solusi. Lebih baik menjelaskan bagaimana menggunakan produk untuk memecahkan masalah, atau setidaknya menggambarkan apa yang membuat produk solusi yang baik, bukan hanya hit Google acak. Panduan bagus untuk merekomendasikan perangkat lunak di sini: meta.superuser.com/questions/5329/… . Terima kasih.
fixer1234
1
Pertanyaannya sangat spesifik, saya memberikan jawaban yang spesifik. Dan demi Tuhan ada baris perintah tepat di atas kita.
MaikoID