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


33

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

cat image.png | imageviewer

Ответы:


40

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

cat image.png | display

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


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


7

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

eog /dev/stdin < "$file"

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


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. Он специально предназначен для пользователей командной строки, которым нужен быстрый просмотрщик изображений без огромных графических зависимостей.


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

1
Вопрос очень конкретный, я дал конкретный ответ. И ради бога, прямо над нами есть командная строка.
MaikoID
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.