1

SVGファイルでグラフィック操作を実行できるライブラリを探しています。「操作」とは、次のようなことを意味します。

  • 2つの重なり合う形状を1つの形状にマージします
  • 形状の幾何学的中心を見つける
  • 元の図形のサイズの25%である図形のコピーを描画します

...そしてIllustratorでできる他の種類のこと。

この種のタスクを自動化して、何百ものSVGファイルで実行できるプロセスを構築する必要があります。Illustratorでこの種のことを自動化するスクリプトを作成できることはわかっていますが、これをリモートマシンで実行する必要があり、Illustratorの実行中のインスタンスがあることに依存することはできません。

4

2 に答える 2

2

あなたがリストした要件を直接満たすライブラリは知りませんが、SVG DOM を使用して単純にスクリプト化することは難しくないと思います。

最初のタスクでは、2 つの図形をグループ化するのが最も簡単なように思えます。


var shape1 = document.getElementById("shape1");
var shape2 = document.getElementById("shape2");
var newG = document.createElementNS(svgNs,"g");
shape1.parentNode.removeChild(shape1);
shape2.parentNode.removeChild(shape2);
newG.appendChild(shape1);
newG.appendChild(shape2);

2 番目のタスクでは、形状の境界ボックスを取得して、その中心点を見つけることができます。


var bbox = shape1.getBBox();
var centrePoint = {x:bbox.x + bbox.width/2, y:bbox.y + bbox.height/2};

3 番目のタスクでは、シェイプをコピーして、スケール変換を適用できます。


var shape1Clone = shape1.cloneNode(true);
shape1Clone.setAttributeNS(null,"transform","scale(.75)") 

これを自動化してリモート マシンで実行できるようにするには、Apache Batik ライブラリを使用し、Rhino でスクリプトを作成します。これを行う方法の例については、これを見てください。

于 2010-08-24T12:35:30.063 に答える
0

Qt ライブラリの 1 つに同様の機能があり、おそらくほとんどの変換操作を実行できます。

Qt SVG

于 2010-08-24T12:05:28.877 に答える