是否有在STDIN上拍摄图像的图像查看器?


33

我正在寻找一个可以接收数据stdin并且可以像这样运行的图像查看器:

cat image.png | imageviewer

Answers:


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
埃米尔·隆伯格2014年


7

在Linux(以及可能的BSD)上,几乎所有的-如果您给出/dev/stdin路径。其中包括:xloadimage,,fehGNOME的眼睛(eog)。

eog /dev/stdin < "$file"

(不过,并不是所有文件都可以与特殊文件一起很好地工作。例如,GThumb测试失败。)


3
这不起作用:cat graph.png | eog / dev / stdin
bukzor 2011年

5
@Naga:这< "$file"是一个例子。关键是程序是否可以接受任意流,无论是简单重定向还是更高级的流(例如,通过stdin,命名管道,进程替换,套接字或字符设备提供图像)。问题在于,许多查看器要求fd是可搜索的,只有常规文件和块设备才可以。
grawity 2011年

3
正如@bukzor指出的那样,cat graph.png | eog /dev/stdin失败了,但是eog /dev/stdin < graph.png可以工作。
DenilsonSáMaia'1

2
有什么方法可以使该方法也适用于管道(|)?
塔拉施2012年

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发行版的默认存储库中。它特别针对需要快速图像查看器而又不依赖GUI的命令行用户。


2
您能否扩大答案?仅提及产品(是命令,产品还是冷漠的表达?),并不能真正说明如何完成解决方案。最好说明如何使用该产品解决问题,或者至少说明使该产品成为良好解决方案的原因,而不仅仅是随便问问谷歌。有关推荐软件的良好指导,请访问:meta.superuser.com/questions/5329/…。谢谢。
fixer1234 '16

1
这个问题非常具体,我给出了具体答案。为了上帝的缘故,我们上方有一条命令行。
MaikoID
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.