お絵描きソフトInkscape(インクスケープ)の使い方を初級レベルから上級レベルまで広く紹介しています。
情報追加のリクエストや分かりにくい点があれば下のCONTACTフォームからどうぞ。

Inkscapeのバケツ(塗りつぶし)ツールの詳細

 このページではバケツツールの詳細についてまとめていきます。

(2023.12.20更新)

バケツツールとは

 バケツツールをツールバー上で選択してキャンバス上をクリックすると、そのクリックした位置を囲む境界線を自動的に抽出してその内側を塗りつぶすようなパスオブジェクトを生成します。一般的なペイントツールのバケツと見た目は似たような動きです。

 ただし、ペイントソフトのバケツ機能と違い、色の境界線に沿った形のパスオブジェクトを新たに生成して、バケツツールのスタイルとして設定されている色でフィルを塗りつぶします。結果として、色の境界線の間を塗りつぶしたかのような絵図になります。

 バケツツールのスタイル(新規オブジェクトのスタイル)として、フィルを塗りなしにしたり、ストロークに何か色を付けたりすると、生成されるパスが塗りつぶしに見えないものになってしまいます。

 境界線に完全にぴったりくっついたパスを生成するわけではないので、境界線との間に少し隙間が残ることがあります。境界線はオブジェクトのアウトライン(オブジェクトの骨組みにあたる線)ではなく、キャンバス上のピクセルごとの色にしたがって自動的に抽出されたものになります。

 次の例では、水色と緑色のストロークではさまれた内側を、スタイルをピンクに設定したバケツツールを使ってクリックしています。ピンクで塗りつぶされたパスが生成されますが、境界線のところはぴったり埋まらずに隙間があることがわかります。

 Inkscapeのバケツツールはペイントツールのような純粋な(?)塗りつぶしではないので、そういう塗りつぶしを想像しながら使うとちょっと期待通りにならないこともあります。それに対して「ペイントツールを使えばよい」「周囲のパスを統合してフィルを塗ればよい」「バケツツールはペイントツールの名残りの古い機能だ」という意見もみかけますが、ベクタデータのままで編集したかったり、塗りつぶしたい領域の形のパスを作るのが手間がかかったりする場合も多いと思うので、個人的には(自分ではほとんど使わないけれど)バケツツールの存在意義は十分あるかと感じています。

バケツツールのパラメータ

 バケツツールのツールコントロールバーでは次のようなパラメータを設定します。

 塗り色しきい値とで、境界線の抽出条件を設定します。

 マウスをクリックした位置から始めて周囲のピクセルの色を探索し、塗り色で指定した属性がしきい値で指定した値を超えて変化するところを境界線とします。

 塗り色として表示色を指定した場合は、本当の見た目の色の値をしきい値と比較します。塗り色として他のものを指定した場合は、見た目の色ではなく、色の属性(RGBのR値とか)をしきい値と比較します。ただし、しきい値と比較するのが、色の属性の具体的にどんな値なのかわかってません。小さいしきい値の場合は、色の属性がちょっとでも変化するところを境界線として抽出するようになるようですが。実際には、しきい値をいろいろ変えながら、塗りつぶされる範囲が希望通りになるように調節することになりそうです。

 拡縮量は、抽出した境界線を基準としてどのぐらい広がった(あるいは狭まった)パスを生成するかを指定します。プラスの値を指定すると境界線より少し外側まで広がったオブジェクトを生成します。例えば「+2mm」を指定してちょっと大きめのオブジェクトを生成されるので、その生成されたオブジェクトを他のオブジェクトよりも下に重なるようにすると、すきまなく間を塗りつぶしたような見た目にすることができます。

 隙間の閉じは、抽出した境界線に少し切れ目があったとしても無視してくれる、切れ目の大きさをざっくり指定します。

バケツツールの注意点

 このバケツツールを使う上で注意しないといけないのは、ペイントソフトのようにピクセル単位で塗りつぶすのとは異なり、その時点での境界線と同じ形のパスオブジェクトを生成しているだけなので、塗りつぶされたほうのオブジェクトを変形してしまうと、バケツツールによって生成済みのオブジェクト(こちらは自動的に変形されたりしない)とズレてしまい、塗りつぶした感じではなくなります。

 見た目には色の境界線に囲われているように見える場所をクリックしても、塗りつぶしが行われない場合があります。そのときはステータスバーに「領域は境界線で囲まれていません。」というメッセージが出ます。これは、塗り色しきい値の設定を使って境界線の抽出を試みたが、境界線は見つからなかったという意味で、見た目の境界線が塗り色しきい値の設定の境界線の条件を満たしていないからですが、何が起こっているのかパッと見にはわかりにくいですね。