1. ホーム
  2. svg

[解決済み】SVGファイル内のtransformを削除する方法

2022-04-13 23:10:23

質問

しばらく悩んでいるのですが、どこにも(うまくいく)答えが見つからないようです。私は以下のようなSVGファイルを持っています。

<svg

   xmlns:dc="http://purl.org/dc/elements/1.1/"
   ...
   width="72.9375"
   height="58.21875"
   ...>
   ...
   <g
     ...
     transform="translate(10.75,-308.96875)"
     style="...">
     <path
       inkscape:connector-curvature="0"
       d="m -10.254587,345.43597 c 0,-1.41732 0.17692,-2.85384 0.5312502,-3.5625 0.70866,-1.41733 2.14518,-2.82259 3.5625,-3.53125 1.41733,-0.70866 2.11392,-0.70867 3.53125,0 1.41732,0.70866 ... z"
       ... />
  </g>
</svg>

を削除したい。 transform="..." という行がありますが、画像は(InkScapeで)配置したままの状態になっています。手動でトランスフォームを削除すると、画像は画面の別の場所に移動します (予想通り) が、トランスフォームを完全に削除して、同時に画像を正確に配置したい場所にとどめる必要があります。トランスフォームをパス座標そのものに除去/平坦化する方法はありますか?(私が扱わなければならない変換は translate と scale だけで、matrices はありません。)

どのように解決するのですか?

削除方法 トランスフォーム での

  1. svg ファイルを Inkscape で開く
  2. 編集 -> すべてを選択」に進みます。
  3. オブジェクトへ移動 -> グループ解除
  4. 編集に進む -> XMLエディタ
  5. レイヤー内のtransform属性を検索し、削除します。

別のトランスフォーム属性を作成せずに、すべてのオブジェクトを完全に移動させる方法

  1. 編集 -> すべてのレイヤーですべてを選択します。
  2. オブジェクトへ移動 -> トランスフォーム

トランスフォームパネルで

  1. チェックをはずす 相対移動 をチェックし 各オブジェクトに個別に適用
  2. 設定 水平 縦型 をクリックします。 適用