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

Inkscapeのフィルター:ピクセル化

 このページでは、Inkscapeの組み込みフィルタの1つである、オブジェクトのエッジ部分のアンチエイリアスを取り除いて、くっきりした境界線にしてくれるフィルタを紹介します。



(2023.06.27更新)

 このフィルタを適用するには、プルダウンメニューでピクセルツール > ピクセル化を操作します。

 Inkscapeが扱っているSVG形式はベクタデータなので、オブジェクトと背景の境界線は色を塗り分けてくっきりと表示することはもちろん出来ますが、1個1個が四角いピクセルをくっきりと色分けして表示してしまうと、境界線のところの凸凹が目立ってしまい、滑らかな線に見えなくなってしまいます。

 そこで通常はオブジェクトの端のところのピクセルを少し透明にして(不透明度を小さくして)、背景になめらかにつながっているように見せる「アンチエイリアス」という処理が施されます。

 一方で、例えば小さいアイコンを作るときのように、アンチエイリアス無しで表示したい場合もあるのだそうです。そんなときは一時的にアンチエイリアス機能を無効にできればいいわけです。Inkscapeでも、ドキュメントのプロパティというダイアログの表示タブに次のようなオプションがあって、アンチエイリアス機能を無効にできるようにみえます。

 ところがどういうわけか、このオプションをはずしてもアンチエイリアス処理は行われているように見えます。また、アンチエイリアス機能が無効にできたとしても、それは全てのオブジェクトの表示でアンチエイリアスが行われなくなるということで、特定のオブジェクトだけ無効にするというわけにはいきません。

 そこでこのピクセル化フィルタを使うと、このフィルタを適用したオブジェクトの表示だけがアンチエイリアス無しで行われるようになります。

 例えば次のように小さいオブジェクトを描きます。

 これをSVG形式でファイルに保存した上で、Webブラウザで表示します。

 この画面をキャプチャして拡大すると次のようになります。アンチエイリアスによって境界線のピクセルが半透明になっていることがわかります。

 次に、Inkscape上でこの青いほうのオブジェクトだけピクセル化フィルタを設定して、同じようにWebブラウザで表示すると、次のようになります。

 フィルタを設定した右側のものは境界部分のピクセルが半透明にならずに、くっきりと表示されることがわかります。(Webブラウザのキャプチャ画像の表示それ自体にもアンチエイリアスが実行されるのでややこしいですが)

 このフィルタが何をやっているかというと、カラーマトリクスというフィルタプリミティブ要素を使って、各ピクセルのR値G値B値はそのままに、A値(不透明度)だけを無理矢理大きい値に変換するような行列を設定することで、アンチエイリアスによって半透明になったピクセルを再度不透明に戻すということを行っています。

 機械的に半透明なピクセルを不透明にしているだけなので、意図的に半透明になるように描いたオブジェクトも全部不透明になってしまうのはご愛嬌です。

 (参考:フィルタとは何か