web-dev-qa-db-ja.com

LinuxのコマンドラインSVGと画像ファイルビューア?

SVGおよびJPG/PNG画像ファイル用のコマンドライン(パイプ可能)グラフビューアーはありますか?

特に、グラフ/画像ファイルはプレーンファイルではなくパイプラインを介して出力されるため、ファイルタイプ/拡張子を指定するオプションが必要です。

gvはドットプログラムによって生成されたPS/PDFで機能しますが、SVGなどの画像ファイルをサポートするための代替手段があるかどうか知りたいのですが。

37
Xiè Jìléi

ImageMagick に付属するdisplayプログラムを試しましたか?

Inkscape には独自のビューアがすでに付属しています:inkview

機能がなく、少し遅いかもしれませんが、機能します(おそらくImageMagickのdisplayよりもSVGをより正確にレンダリングします)。

14

「パイプ可能」とはどういう意味ですか?
fehは、多数のオプションを備えた非常に優れたコマンドラインビューアです。

10
Ivan Petrushev

私は通常SVGをテキストファイルとして使用するので、ファイルが保存された(およびその内容が変更された)とすぐにビューアが表示を自動的に更新するようにしたいと思います。これは「pipable」状況に適用できるはずです(つまり、名前付きパイプ)。

デフォルトのGnomeアプリの場合:

  • evinceは現在、PDFの場合はこのように機能しますが、SVGを読み取ることができないようです(私にとっては、SVGファイルをロードしようとしたときに「Unable to open document - Error opening file: Permission denied」が生成されます)。
  • eog(Eye Of Gnome)-最新バージョン-これでファイルが変更されたかどうかを検出し、[再ロード]ボタンを提供できます。どうやら、毎回「再読み込み」をクリックする必要があるようです(eogがPDFで動作するように、evinceでファイルの変更時に常に自動再読み込みを実行する方法はわかりません)。また、少なくとも私のUbuntu 10.04では、eog SVGのサポートがいくらか壊れています(ぼやけた線で結果を拡大)
  • ImageMagickのdisplayは、ディスク上のファイルが変更されたときに自動的に更新されないだけでなく、displayで[更新]を押しても、更新は行われますnot最新を取得しますファイルのバージョン(つまり、最新バージョンを表示するにはdisplayを再起動する必要があります:()。

これまでに見つけたメモがいくつかあります。

  • Squiggle、SVGブラウザー Batikツールキットの一部であるSVGブラウザー。 - ダウンロードバティック バティック-1.7.Zip;開梱してください。 Java -jar batik-squiggle.jarを実行してください。ディスク上のsvgファイルが変更された場合、イメージを自動的に更新しません
  • SVG画像ビューア?-Ubuntuフォーラム 推奨事項:
    • ポストで #8 -"私は少し書きましたpythonスクリプト...あなたはそれを次のように実行するだけです:svg_compare.pyそしてそれが開きますsvgを起動し、svgライブラリとgtkのラスターライブラリを使用して表示します。マウスでズームできます... "
    • xsvg(from http://cairographics.org )-インストールしました libsvg1_0.1.4-1_i386.deblibsvg-cairo1_0.1.6 -5_i386.deb および xsvg_0.2.1-3_i386.deb の順序で;これらのバージョンは2005年のものなので、xsvgは非常にシンプルです-ズームなし、何もありません。そして言うまでもなく、保存されたファイルの変更に自動的に反応しません...
  • その結果、rsvg-viewが見つかりました。これはSudo apt-get install librsvg2-binの一部だと思います。その小さなニースはstdinをサポートしていますが、rsvg-viewはファイルの変更を検出できず、自動的に更新されます。

うん、まあ、これが役に立てば幸い...
乾杯!

[〜#〜] edit [〜#〜](Dec 24 '10):まあ、これも私の貢献です: svg_refreshview.py -これは基本的には上記のsvg_compare.pyは、SVGファイルを単に表示し、ファイルがリロードされ、ファイルが変更されている場合は表示を更新します。 (それは実際にstdinで動作することはできません-しかし、私のリポジトリには、pythonでstdinを解析する他のスクリプトがあります、おそらくそれらは役に立ちます)。

EDIT2(May 20 '12):また、Perl-Tkスクリプトの例が思い付きました。これは非常に大雑把です(マウス操作がない、何もない) )ですが、ImageMagick Perl APIを使用しており、SVGを(キャンバス上のビットマップとして)レンダリングできます。 answer#10670039-ImageMagick API for displayへのコマンドラインGUIアプリケーションインターフェース-スタックオーバーフロー

8
sdaau

ImageMagick displayのデニスウィリアムソンの 推奨 の2番目です。

また、 名前付きパイプ を使用して、ファイルから読み取るプログラムにデータをパイプすることもできます。

例:

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

ただし、ファイル内を逆方向にシークできることが期待されるプログラムでは機能しません。

4

Geeqieビューアがsvgグラフィックを処理し、更新された画像を自動的にロードするようです。 stdinから画像を取得できるかどうかはわかりません。お役に立てば幸いです。

3
Ray

何らかの理由で本当に一時ファイルを使用したくない場合は、少なくとも名前付きパイプを使用することができます。

これを使用すると、Firefoxを簡単に使用でき、Inkscapeのinkview、imagemagickのdisplayなどをはるかに上回ります。

# Shell 1
mkfifo /tmp/mypipe
long | chain | of | stuff > /tmp/mypipe

# Shell 2
firefox --new-window /tmp/mypipe
0
Suuuehgi