SVGには、サイズを決定する次のプロパティがあります。
width="146.91299pt"
height="78.079002pt"
viewBox="0 0 146.913 78.079"
アスペクト比を壊すことなく、コマンドラインで特定のSVGを400pt
のwithにスケーリングしたいと思います。つまり、上記の3つの値は、次のsvgコードのすべてのポイントおよびを正しく変更する必要があります。キャンバスサイズだけを変更するのではなく、svg画像全体のサイズを変更します。そして、私はGUI /手でそれをしたくはありませんが、CLIでそれをしたいのです。
コマンドラインで指定した幅にSVGを自動的にスケーリングするにはどうすればよいですか?
理由:画像が小さすぎると、Wikipediaのプレビューが悪く見えます。例として this image を参照してください。
Inkscape-GUIでこのタスクを実行する方法
これを行うには、自動CLIウェイが必要です。
ちなみに、inkscapeは単純に適用されました
<g transform="matrix(1.6838397,0,0,1.6838397,-3.3543029,-3.3542794)"
id="surface0">
画像全体に。
rsvg-convert
から librsvg2-bin
パッケージはsvgのサイズを変更できます。
詳細な手順については、 この回答 を参照してください。
1つの画像のみを変更する場合は、テキストエディター(emacsなど)で画像を開き、幅のエントリを変更します。
ギークでCLIのみのアプローチの場合は、sedを使用します。
$ sed 's/width=\"146.91299pt\"/width=\"400pt\"/' orig.svg > new.svg
ただし、これは画像をスケーリングせず、幅のみを設定します。
おそらくより良い方法ですが、多くの画像に対してバッチモードで実行できる方法は、コマンドラインからinkscapeを使用することです。
$ inkscape -z -e out.png -w 400 -h 400 in.svg
多くのファイル(すべてのファイルの幅を同じにしたい場合)では、次のようにします。これはpngに変換する必要があり、ファイル名にスペースがないことを前提としています。
$ for n in $(ls *svg | sed 's/.svg//'); do inkscape -z -e $n.png -w 400 -h 400 $n.svg; done
ImageMagick の変換が最初の選択肢でしたが、svgをスケーリングすると変換が失敗するようです。