「note」に引っ越し中です。移動したページごとに移動先へのリンクを作っていく予定です。

Inkscapeのトレース機能でクリッピングパスを作る

 このページでは、Inkscapeをつかって画像の一部を切り取るときのクリッピングパスをトレース機能を使って作る方法を考えてみました。

(2025.05.02更新)

 「写真から被写体を切り取る」のほうに書いたように、写真の一部を切り取るときに使うクリッピングパスをフリーハンド(ペンツールなど)で描くのはなかなか大変なので、Inkscapeのトレース機能を使って生成すればかなり複雑に曲がりくねったクリッピングパスでも簡単に作ることができます。

 ところで、「写真から被写体を切り取る」のほうでは書かなかったのですが、トレースした結果生成されるパスオブジェクトは非常に複雑な構造になっていて、ほとんどのケースでトレースしただけでは切り取りたい境界のところにピッタリのパスは生成されないと思います。

 そこで、トレース結果から不要なパスを削除していって、切り取りたい境界に沿ったパスに編集する必要があります。

 その具体的な編集手順をここにメモしておきたいと思います。

 まず切り取りたい形の外側をペイントツールで(例えば白で)塗りつぶしておいて、トレースします。ここまでは「写真から被写体を切り取る」で書いた手順です。

 見た目では分かりにくいですが、トレース前の左のものは画像オブジェクトで、トレース後の右のものはパスオブジェクトです。トレースによって、色の違うところで区切った領域をそれぞれサブパスに変換し、似た色のサブパス同士から1個のパスオブジェクトを作り出しています。この例では10個のパスオブジェクトが生成されています。

 このパスオブジェクトをノードツールで選択すると次のように多数のノードをつなぎ合わせたものになっていることが分かります。

 ノードでびっしり埋まったようになってしまいます。この例ではトレースした結果、5万個ほどのノードを含むパスオブジェクトが生成されました。

 ここから切り取りたい領域のパスだけを残したいので、まず切り取りたい領域とは関係ない外側のサブパスを消します。

 そのためには、シフトキーを押しながらマウスをドラッグしてラバーバンドで外側のノードを大雑把に囲っていきます。シフトキーを押しているので、ノードを追加選択することができます。

 何回かドラッグして大雑把に切り取りたい領域の外側のノードを選択します。外側のノードがまだ少し残っています。

 ここですぐDelキーを押すと、選択したノードは消えますが残りのノードを含むサブパスは消えずに残ってしまうので、次にCtrl-Aを押します。そうすると選択状態のノードを含むサブパスのすべてのノードが選択されます。

 つまり、切り取りたい領域の外側のサブパスがほぼ全部選択状態になります。

 ここでDelキーを押せば、すべてのノードを選択状態にしたサブパスが削除されます。

 ノードの選択が足りなくて、外側のサブパスが消されずに残ってしまった場合は、外側ノードの選択→Ctrl-A→Delを繰り返して残りの不要なサブパスを消します。

 不要なサブパスを消したあと、分かりやすいようにストロークを黒くし、フィルを塗りなしにしてみます。

 非常に多くのサブパスが重なり合って入り組んだ構造になっていることがわかります。

 次にパス > 分解メニューですべてのサブパスをバラバラのパスオブジェクトにし(この後の「統合」操作のために必要)、さらにパス > 統合メニューで重なり合っているパスオブジェクトの外側の縁をなぞったパスに変換します。

 これで切り取りたい領域に沿ったクリッピングパスが手に入りました。