Есть ли программа просмотра изображений, которая принимает изображения на STDIN?

33

Я ищу средство просмотра изображений, которое принимает данные stdinи может быть запущено следующим образом:

cat image.png | imageviewer
SL9
источник

Ответы:

40

displayПрограмма ImageMagick сделает именно это, если вы передадите что-то, что она понимает.

cat image.png | display

и появится окно с этим изображением.

erjiang
источник
1
На версии ImageMagick 6.8.8-1 Q16 i686 2014-01-04мне нужно также передать -в качестве параметра: $ cat image.png | display -или $ display - < image.png.
Эмиль Лундберг
12

ImageMagick's display.

display < foo.png
Игнасио Васкес-Абрамс
источник
7

В Linux (и, вероятно, BSD) почти все из них - если вы укажете /dev/stdinпуть. Это включает в себя: xloadimage, feh, Глаз GNOME ( eog).

eog /dev/stdin < "$file"

(Однако не все из них хорошо работают со специальными файлами. GThumb не прошел тест, например.)

grawity
источник
3
Это не работает: cat graph.png | eog / dev / stdin
букзор
5
@Naga: Это < "$file"был пример. Дело в том, может ли программа принять произвольный поток, будь то простое перенаправление или что-то более продвинутое (например, предоставление изображения через stdin, именованный канал, подстановка процесса, сокет или символьное устройство). Проблема в том, что многие программы просмотра требуют, чтобы fd был доступен для поиска, а это только обычные файлы и блочные устройства.
grawity
3
Как указал @bukzor, cat graph.png | eog /dev/stdinне eog /dev/stdin < graph.pngработает , но работает.
Денилсон Са Майя
2
Есть ли способ заставить этот метод работать с piping ( |)?
Тарраш
1
Похоже, что eogпоиск информации о дескрипторе файла (который успешно выполняется в особом случае, когда он был перенаправлен непосредственно из файла), в то время как обычные программы Unix будут просто принимать ввод, независимо от того, откуда он берется. Так eogчто не будет работать для генерального STDIN. Еще одна работающая программа gwenview /dev/stdin(программа просмотра изображений KDE).
Механическая улитка
3

FIFO может работать с eogотсутствием поддержки трубопроводов:

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

AFAIK это должно работать.

Натан Ринго
источник
3

Вы можете использовать Feh, это довольно быстро.

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

feh - это облегченный просмотрщик изображений, который находится в репозиториях по умолчанию во многих дистрибутивах Linux. Он специально предназначен для пользователей командной строки, которым нужен быстрый просмотрщик изображений без огромных графических зависимостей.

MaikoID
источник
2
Можете ли вы немного расширить свой ответ? Просто упоминание о продукте (это команда, продукт или выражение безразличия?), На самом деле не объясняет, как выполнить решение. Лучше объяснить, как использовать продукт для решения проблемы, или хотя бы описать то, что делает продукт хорошим решением, а не случайным попаданием в Google. Хорошее руководство по рекомендации программного обеспечения здесь: meta.superuser.com/questions/5329/… . Спасибо.
fixer1234
1
Вопрос очень конкретный, я дал конкретный ответ. И ради бога, прямо над нами есть командная строка.
MaikoID