Linux中的命令行SVG和图像文件查看器?


36

是否有用于SVG和JPG / PNG图像文件的命令行(可传递管道)图形查看器?

特别是,图形/图像文件是通过管道而不是普通文件输出的,因此必须有指定文件类型/扩展名的选项。

尽管gv适用于由点程序生成的PS / PDF,但我想知道是否存在支持SVG等图像文件的替代方法。


1
只是要澄清一下:您的主要目的不是在控制台上显示“ .svg”,“。jpg”和“ .png”(“命令行”),而是将此类mime类型通过管道传递给普通的图形程序吗?
akira 2010年

1
是的,我想在X中显示。就像gv一样。但是gv不支持SVG等。
Xieléi2010年

gwenview很快,想知道是否满足您的需求?
水瓶座力量

Answers:


37

您是否尝试过ImageMagickdisplay随附的程序?


3
AFAIK,仅Imagemagick不能显示SVG文件,它需要一个将SVG转换为位图的工具。在Debian上,sudo aptitude install librsvg2-bin如果尚未安装“ rsvg-convert” ,则很有必要。该软件包还包含一个查看器rsvg-view-3,该查看器具有比更好的缩放比例display
Mytskine

2
@Mytskine:根据ImageMagick文档,如果InkscapeRSVG不可用,它将使用自己的内部SVG渲染器。
暂停,直到另行通知。

1
在我的系统上:inkscape加载速度慢,inkview速度快但似乎无法改变视图?display对我来说很棒:-)
休·珀金斯

我没有设法从管道输入中获取inkview的工作,但是无论如何,Display确实可以实现我想要的功能:-)我像go run my_svg_generator.go | displaythx 一样使用它。
JepZ

1
警告!!!!如果您着急不要使用显示器!!!对于一个500kb的svg文件(用于分析systemd引导问题),我花了20分钟才能再次使用我的计算机,因为它使用了4GB(已请求7GB的virt.mem)中的6GB内存已经RAM肿,并且正在交换大量内存(5GB)去交换只是因为显示):(,不确定任何其他选项的性能来可视化svg tho。,gwenview相当快的顺便说一句
Aquarius Power

12

Inkscape已经带有自己的查看器:inkview

它缺乏功能,可能有点慢,但是可以工作(并且可能比ImageMagick的渲染SVG更为准确display)。


只是想指出一下,我inkview在Ubuntu 10.04.3上尝试(我相信是从0.48 inkscape出发)的,启动速度非常快!(编辑:但仅限于小.svgS;试inkview /usr/share/inkscape/examples/*.svg*的手册页说,也有一些重质有太多......不过,GUI启动快的。)感谢这一点,@DenilsonSá -干杯!
sdaau,2012年

对于非常大的SVG,inkview似乎中断了。
CMCDragonkai

10

“管道”是什么意思?
feh是非常好的命令行查看器,具有大量的选项。


1
我的意思是它接受来自stdin的输入,并在可能的情况下猜测MIME类型。或者,如果无法通过启发式猜测文件类型,则通过明确指定扩展名。
谢雷(YièJìléi)2010年

11
feh似乎根本不支持SVG;我得到“ feh WARNING: pySVGLogo.svg - No Imlib2 loader for that file format” ...干杯!
sdaau 2010年

1
少量注意事项:首先是feh 首页示例屏幕截图;second(ubuntu 10.04.3):启动非常快;具有Debian / Ubuntu软件包;鼠标交互有些奇怪(请参阅feh --help最后);我可以加载pngs 的目录,并按住(箭头键),它加载得如此之快,以至于看起来(或优于)动画的.gif :)...干杯!
sdaau,2012年

1
@sdaau,FEH确实不支持SVG,所以是不是一个有用的答案OP。
Dylan Thurston

8

我通常将SVG作为文本文件使用,因此希望查看器在文件保存(内容更改)后立即自动刷新显示-我认为这应适用于“可点入”情况管道)。

请注意,对于默认的Gnome应用程序:

  • evince目前适用于PDF,但似乎无法读取SVG(对我来说,Unable to open document - Error opening file: Permission denied当我尝试加载SVG文件时会生成“ ”)
  • eog(Eye Of Gnome)-最新版本-也可以检测文件是否已更改,然后提供“重新加载”按钮;但显然,您仍然每次都必须单击“重新加载”(我看不到总是在文件更改时导致自动重新加载的方法eog,就像evincePDF一样)-而且,至少在我的Ubuntu 10.04中,eogSVG支持有点破损(线条模糊导致结果放大)
  • ImageMagick display不仅不会在磁盘上更改文件时自动刷新-甚至在您按“刷新”时display,您仍然不会获得文件的最新版本(这意味着您必须重新启动display以显示最新版本:() 。

到目前为止,我发现了更多注释:

  • Squiggle,SVG浏览器蜡染工具包中的SVG浏览器。- 下载Batik batik-1.7.zip; 打开包装;奔跑java -jar batik-squiggle.jar在那里 如果svg文件在磁盘上更改,则不会自动刷新图像
  • SVG图片查看器?-Ubuntu论坛建议:
  • 通过这一发现,我发现rsvg-view这是的一部分sudo apt-get install librsvg2-bin。它很小巧,支持stdin-但是,它也rsvg-view无法检测到文件更改并自动刷新。

是的,我希望这对您有帮助...
干杯!

 

编辑(2010年12月24日):嗯,这也是我的贡献:svg_refreshview.py-基本上是svg_compare.py上述内容的返工,它仅显示SVG文件,并重新加载文件并刷新文件(如果文件已被修改) 。(它实际上不能与stdin一起使用-但我的存储库中还有其他脚本可以在python中解析stdin,也许它们会有所帮助)。

EDIT22012年 5月20日):此外,还提出了一个Perl-Tk脚本示例,该示例非常粗糙(没有鼠标交互,什么都没有),但是使用ImageMagick Perl API,因此可以呈现SVG(作为画布上的位图) ),请参阅答案#10670039 - ImageMagick的API的命令行GUI应用程序界面display-堆栈溢出


有时候,我已经修补了ReloadeogJUST YESTERDAY》的内容!我也讨厌那个按钮!
谢耶利(YièJìléi)2010年

而且,告诉您另一个事实,“ display来自ImageMagick”无法很好地缩放SVG,因为它会在显示图形之前对其进行栅格化。更糟糕的,display并且rsvg不与我的一些SVG文件。到目前为止,只有FireFox可以正确渲染。FireFox胜过一切。
谢雷(YièJìléi)2010年

嗨@谢继雷,谢谢你的评论!好吧-我刚刚编辑了我的文章,并添加了一个指向我刚刚放在一起的python脚本的链接-试试看,也许有帮助...干杯!也对“讨厌那个按钮” +1 :) [尽管,我必须承认:我总是宁愿有一个按钮来手动做某件事-而不是让它:) ...我只是想自动刷新额外:)]
sdaau 2010年

4

我赞同Dennis Williamson 对ImageMagick 的推荐display

另外,有时您可以使用命名管道将数据管道传输到从文件读取的程序。

例:

mkfifo /tmp/foo.svg
cat /usr/share/inkscape/clipart/tux.svg > /tmp/foo.svg & inkscape /tmp/foo.svg
rm -f /tmp/foo.svg

但是,不能与期望能够在文件中向后搜索的程序一起使用。


谢谢,这种命名管道的用法非常有创意。经过一番尝试,我发现启动花了一些时间,它是一个功能齐全的编辑器,而不是简单的查看器。
谢雷(YièJìléi)2010年

3

看来Geeqie Viewer处理svg图形,并自动加载更新的图像。我不知道它是否可以从stdin拍摄图像。希望对您有所帮助。

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.