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

Xiè*_*léi 43 linux image-viewer command-line

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

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

虽然gv适用于点程序生成的 PS/PDF,但我想知道是否有支持 SVG 等图像文件的替代方案。

Den*_*son 45

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

  • AFAIK,Imagemagick 本身不能显示 SVG 文件,它需要一个将 SVG 转换为位图的工具。在 Debian 上,如果尚未安装“rsvg-convert”,则必须使用 `sudo aptitude install librsvg2-bin`。该软件包还包含一个查看器 `rsvg-view-3`,其缩放比 `display` 更好。 (4认同)
  • 警告!!!!如果您赶时间,请不要使用显示器!!!对于 500kb svg 文件(用于分析 systemd 启动问题),我花了 20 分钟才可以再次使用我的机器,因为它使用了 4GB(请求 7GB 的 virt.mem)我的 6GB 已经膨胀的 RAM 并且正在交换大量(5GB)去交换只是因为显示):(,不确定任何其他选项的性能来可视化 svg tho。,`gwenview` 很快 btw (3认同)
  • @Mytskine:根据 [ImageMagick 文档](http://www.imagemagick.org/script/formats.php#supported),如果 [Inkscape](http://www.inkscape .org/) 或 [RSVG](http://developer.gnome.org/rsvg/) 不可用。 (2认同)
  • 在我的系统上:`inkscape` 加载缓慢,`inkview` 速度快但似乎无法更改视图?`display` 对我很有用 :-) (2认同)

Den*_*aia 21

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

它缺乏功能,可能有点慢,但它可以工作(并且可能比 ImageMagick 更准确地呈现 SVG display)。

  • 对于非常大的 SVG,inkview 似乎会崩溃。 (2认同)

sda*_*aau 14

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

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

  • evince目前对 PDF 是这样工作的,但似乎它无法读取 SVG(对我来说,Unable to open document - Error opening file: Permission denied当我尝试加载 SVG 文件时它会生成“ ”)
  • eog(Eye Of Gnome) - 最新版本 - 还可以检测文件是否更改,然后提供“重新加载”按钮;但显然,你仍然必须点击“刷新”每一次(我看不到的方式来引起总是自动装载功能,在文件中的变化eog,如evince用PDF文件的行为) -还有,至少在我的Ubuntu 10.04,eogSVG支持有点破损(放大结果线条模糊)
  • display当文件在磁盘上更改时,ImageMagick不仅不会自动刷新 - 甚至当您按 'refresh' 时display,您仍然没有获得文件的最新版本(这意味着您必须重新启动display才能显示最新版本:() .

以下是我目前发现的更多笔记:

  • Squiggle,SVG 浏览器SVG 浏览器是 Batik 工具包的一部分。-下载蜡染蜡染-1.7.zip;打开包装;运行java -jar batik-squiggle.jar它就在那里;如果 svg 文件在磁​​盘上发生更改,则不会自动刷新图像
  • SVG 图像查看器?- Ubuntu 论坛建议:
    • 在帖子#8 - “我写了一个小python脚本......你只需将它运行为:svg_compare.py,它会打开一个svg并使用svg库和gtk的光栅库显示它。你可以用鼠标缩放。 ..
    • xsvg(来自http://cairographics.org) - 我按顺序安装了libsvg1_0.1.4-1_i386.deblibsvg-cairo1_0.1.6-5_i386.debxsvg_0.2.1-3_i386.deb;这些版本是 2005 年的,所以xsvg非常简单 - 没有缩放,什么都没有......不用说,它不会自动对保存的文件更改做出反应......
  • 通过那个,我发现rsvg-view,我认为它是sudo apt-get install librsvg2-bin. 它小巧,漂亮,支持标准输入 - 但是,也rsvg-view无法检测到文件更改,并自动刷新。

是的 - 好吧,我希望这会有所帮助...
干杯!

 

编辑(2010 年 12 月 24 日):嗯,这也是我的贡献:svg_refreshview.py - 这基本上是svg_compare.py上述提到的返工,它只是显示一个 SVG 文件,如果文件已被修改,则重新加载文件并刷新显示. (它不能真正与标准输入一起使用 - 但我的仓库中有其他脚本可以在 python 中解析标准输入,也许它们会有所帮助)。

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


Iva*_*hev 11

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

  • `feh` 似乎根本不支持 SVG;我收到“`feh WARNING: pySVGLogo.svg - No Imlib2 loader for that file format`”......干杯! (14认同)
  • @sdaau,feh 确实*不* 支持 SVG,因此对 OP 来说不是一个有用的答案。 (2认同)
  • 要使用 feh,您需要安装 imagemagick,并在 feh 命令行上指定超时,例如“--conversion-timeout 30” (2认同)

小智 5

我支持 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
Run Code Online (Sandbox Code Playgroud)

但是,不适用于希望能够在文件中向后查找的程序。


Ray*_*Ray 5

Geeqie 查看器似乎可以处理 svg 图形,并自动加载更新的图像。我不知道它是否可以从标准输入获取图像。我希望它有帮助。


小智 5

您可以使用feh它,速度非常快。

这里是man feh

SUPPORTED FORMATS
     feh can open any format supported by Imlib2, most notably jpeg, png, pnm, tiff, and bmp. The gif format is also supported, but only for static images. In case of animations, only the first frame will be shown.  If the
     convert binary (supplied by ImageMagick) is available, it also has limited support for many other filetypes, such as svg, xcf and otf. Use --magick-timeout num with a non-negative value to enable it.
Run Code Online (Sandbox Code Playgroud)

其中表示如果您想打开 SVG 文件,您应该使用:--magick-timeout num并且num可以是正数第 1 行。

所以用法应该是这样的:feh --magick-timeout 1 file.svg

这是打开 SVG 文件的屏幕截图

在此输入图像描述

  • --magick-timeout 已弃用,现在建议使用: --conversion-timeout (2认同)