2

コマンドラインで svg を png に変換する必要があります。imagemagick を使用してみましたが、このサンプル s3.svg など、回転変換で使用するとバグがあるようです。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg">
  <g id="layer1">
    <circle cx="200" cy="200" r="200" stroke="black"
        stroke-width="0.5" fill="none"/>
    <g transform="rotate(48 200 200)">
      <path id="path00" style="fill:#dca08c;stroke:#000000;stroke-width:1"
         d="M 200,0 L 400,200 L 200,400 L 0,200 z"/>
    </g>
  </g>
</svg>

コマンドラインでinkscapeを使用できました:

  c:\app\inkscape\portable\App\Inkscape\inkscape.com -f s3.svg -e s3.png --export-background=white --export-area=0:652:400:1052

ただし、SVG 座標 (0,0) は左上で定義されますが、inkscape のエクスポートでは、エクスポート領域は左下で (0,0) 定義されます。

ページの高さを定義するマジック ナンバー 1052 なしで、inkscape を使用してエクスポートするにはどうすればよいですか?

4

4 に答える 4

3

役立つかもしれない 1 つの方法は、コンテナーとして必要な領域を描画し、id を指定して、-i idオプションでエクスポートすることです。ラッパーが表示されないようにする場合は、空白の背景/境界線を指定します。

編集(例を追加):このxmlを使用しました

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg">
  <g id="layer1">
    <rect width="400" height="600" id="wrapper" fill="none"></rect>
    <circle cx="200" cy="200" r="200" stroke="black"
        stroke-width="0.5" fill="none"/>
    <g transform="rotate(48 200 200)">
      <path id="path00" style="fill:#dca08c;stroke:#000000;stroke-width:1"
         d="M 200,0 L 400,200 L 200,400 L 0,200 z"/>
    </g>
  </g>
</svg>

そして、このコマンドを使用すると(私はMacを使用しているため、必要に応じて特定のOSを翻訳します)、出力pngのサイズ/位置を制御できました:

/Applications/Inkscape.app/Contents/Resources/bin/inkscape -f test.svg -e out.png -i wrapper

私は svg の専門家ではないので、inkscape が行う特定の機能があるかどうかはわかりませんが、非常に Web に準拠していることが常にわかりました。以前は、その svg ファイルを Web ページで直接使用していました。

于 2013-03-02T06:30:10.410 に答える
2

エクスポートしようとしているのは図面全体のようです。

inkscape--export-area-drawingには、エクスポートする領域を指定する代わりに、図面をエクスポートするオプションがあります。

c:\app\inkscape\portable\App\Inkscape\inkscape.com -f s3.svg -e s3.png --export-background=white --export-area-drawing
于 2013-02-28T14:15:50.970 に答える
0

問題がページの高さがわからない場合は、次の構文が役立つでしょうか?

c:\app\inkscape\portable\App\Inkscape\inkscape.com s3.svg -z --query-height

これは、ドキュメントのピクセルの高さを返す必要があります。返された数値をエクスポート呼び出しで使用できます。

于 2013-03-01T02:03:18.380 に答える
0

Inkscape にはキャンバス サイズのオプションがあります。Web へのエクスポートで同じ問題が発生しました。画像がビューポートから外れてしまいます。

エクスポートする要素のサイズに合わせてキャンバス/アートボードのサイズを変更します

于 2013-03-03T10:24:02.690 に答える