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

Inkscapeで使えるフィルタプリミティブ要素:feImage

 このページでは、パラメータとして指定されたID(画像ソースのID)を使って取り出した画像をそのまま出力するプリミティブ要素を紹介します。

(2023.05.16更新)

 Inkscapeのフィルタエディタ上では画像と表示されます。他のプリミティブ要素への入力に使ったりします。

 画像ソースのIDとして「IRI」(Internationalized Resource Identifier)を指定しますが、典型的には画像ファイルのファイルパスを指定します。

 フィルタエディタは次のような画面になっています。


 画像ソース以外にも、その画像をフィルタ適用対象のオブジェクトに対して、どのような配置で出力するかを指定するパラメータがSVG形式としていろいろ定義されていますが、Inkscapeでは「x」と「y」だけがフィルタエディタから指定可能になっています。「x」と「y」は、指定した画像ソースから読み込んだ画像の位置を「x」「y」の分だけ平行移動してから出力するようです。

 ただ、どの位置から平行移動するのかについては、よくわかっていません。画像ファイルを画像ソースとした場合は、画像の左上をキャンバスの原点としてそこから「x」「y」だけ平行移動しているようですが、ビットマップオブジェクトを画像ソースとした場合は、そのビットマップオブジェクトのキャンバス上の位置から「x」「y」だけ平行移動しているようです。

 また、「x」や「y」を指定しない場合は、はっきりとはしないのですが、画像ソースが画像ファイルであれば、フィルタ適用対象のオブジェクトの中央を指定したことになり、画像ソースがビットマップオブジェクトであれば、そのビットマップオブジェクトのキャンバスの原点からの位置をフィルタ適用対象のオブジェクトの左上からの相対的な位置にするよう指定したことになるようです。

 なお、SVG形式では「x」「y」に加えてwidthとheightを指定すると、画像を配置する左上と右下の位置を指定したことになるようですが、Inkscapeではwidthとheightを指定する画面になっていません。

 また、Inkscapeでは、画像ファイルのパスと、キャンバス上の他の選択状態のオブジェクトを画像ソースとして指定可能になっています。

 ちなみに、上の例のようにfeImageだけをフィルタに追加すると、元のオブジェクトの表示がそっくりfeImageの出力に置き換わることになるので、次のように元のオブジェクトは表示されなくなります。

 ところで、このfeImage自体の機能とはあまり関係ありませんが、例えば元のオブジェクトと重ねてfeImageの出力を表示させたい場合は、次のようにフィルタにfeMergeを追加します。

 こうすると、feImageが読み込んだ画像とフィルタ適用対象の画像とが重なります。

 フィルタ適用結果は次のようになります。