私は大きな SVG ファイル (約 60 MB、10000x10000 ピクセルですが、さらに大きくなる可能性があります) を持っています。たとえば、そこから多くのタイル張りの 256x256 PNG 画像を作成したいと考えています (この例では、1600 の画像があります)。 ; ラウンド (10000/256)^2)。
Webサーバーでこれを行う方法を知っている人はいますか(特にPHPを実行しています)? rsvg について考えましたが、バウンディング ボックスを変更する機能がないようです (セクションごとに手動で行うのは避けたいと思います)。ImageMagick ならできるかもしれませんが、私はうまく動かせませんでした。rsvg を使用して大きな PNG を作成してから、非常に大きな画像のタイリング専用のツールを使用するとうまくいくかもしれませんが、そのようなものを見つけることができませんでした! 速度は実際には問題ではありませんが、望ましいことなので、最悪の事態が発生した場合は、セクションごとに SVG の境界ボックスを変更することを検討するかもしれません。しかし、世代が永遠に続くのを見ることができました!
これを行う方法を知っている人はいますか?
2016-03-02 を編集:
私は最近、この質問に対する回答が再び必要になったのですが、Inkscape は、特定のサイズで特定の領域の SVG をレンダリングできる唯一のツールのようです (svgexport
これらの要件をほぼ満たしていますが、アスペクト比を変更することはできません)。 .
私の目的は、SVG を 256x256 のタイルにタイル化することでした。現在inkscape
、約 16,000 x 16,000 のレンダリングを繰り返し実行し、結果の画像をタイル化することで、任意に大きな SVG をタイル化できるスクリプトを作成することに成功しました。サイズが 500,000 x 500,000 ピクセルを超える SVG のレンダリングに成功しました。メモリ使用量に問題はありません (時間がかかるだけです!)。