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

Inkscapeに画像をインポートする時のレンダリングモード

 このページでは、画像をインポートする際に指定可能な「画像のレンダリングモード」というパラメータについて紹介します。

 (参考:ビットマップ画像のインポートと編集

(2023.01.30更新)

レンダリングモードとは何か?

 画像ファイルをファイル > インポートメニューからインポートしようとすると、インポートするときのパラメータを設定するダイアログが表示されます。

 このダイアログには画像のレンダリングモードという項目がありますが、この項目の意味を調べてみました。

 SVG形式では、一部のエレメント(シェイプやテキストや画像など)の描画時の解像度に合わせた描画モードレンダリングモード)を指定できるパラメータ(attribute)がいくつかあります。例えばimage-renderingやshape-renderingといった名前のパラメータです。(このようなパラメータ群のことをSVGの世界ではまとめて何と呼ぶのかわからなかったので、Inkscapeの画面に従ってとりあえず描画モードと勝手に呼んでみました。)

 さて、SVG形式はベクタ形式なので、どんなに拡大してもオブジェクトの輪郭はガタガタにならずなめらかなままで表示されることが期待されますし、それがベクタ形式の利点なわけですが、解像度は有限なので、厳密にピクセルレベルで観察すればガタガタした表示になってしまうのは仕方のないところです。

 ただ、描くオブジェクトの用途などによっては、同じピクセルレベルのガタガタ表示であっても、輪郭がくっきりしていたほうが良かったり、輪郭が少しぼやけていたほうが良かったりするので、輪郭の描き方(すなわち描画モード)をSVG形式の中で指定できるようになっています。

 例えばビットマップオブジェクト(imageエレメント)の場合、「くっきりした輪郭(crisp-edges)」、「ピクセル化(pixelated)」、「速度優先(optimizeSpeed)」、「品質優先(optimizeQuality)」、「自動(auto)」が指定できるそうです。

 imageエレメント以外のエレメントについても、それぞれ指定可能な描画モードがSVG形式の仕様として定義されているそうですが、Inkscapeではビットマップオブジェクト(imageエレメント)についてのみ描画モードの設定機能をサポートしているようなので、ビットマップオブジェクトに対して指定できるパラメータに絞ってさらに詳しく調べてみます。 

 なお、Inkscapeで画像ファイルをインポートするときのダイアログ(上述)では「なし」「平滑化」「そのまま拡大」のようなパラメータの本来の意味を誤解しそうなラベルで表示されているので、ここではInkscapeのラベルに沿って説明することは避けておきます。

 まずは描画モードごとにその意味をまとめます。

くっきりした輪郭

 くっきりした輪郭(crisp-edges)を指定すると、元の画像のピクセル群をそのまま表示し、表示しているソフトの機能によって拡大したときも、ピクセル間の区別はくっきりさせたまま拡大します。元の1ピクセルを複数のピクセルをつないだなめらかな輪郭に変換する方法や、元の1ピクセルを数ピクセルを使った大きな四角形に変換する方法があります。次のような感じでしょうか。

 どのような方法でピクセルをくっきりさせたまま拡大するかは表示するソフトに任されているそうです。

ピクセル化

 ピクセル化(pixelated)を指定すると、元の画像のピクセル群をそのまま表示し、表示しているソフトの機能によって拡大したときは、元の1ピクセルを数ピクセルを使った大きな四角形に変換する方法で拡大します。上のサンプルでいえば、右の拡大後の画像のようになる方法です。

速度優先/品質優先

 速度優先(optimizeSpeed)品質優先(optimizeQuality)は文字通りの意味で、早く描画できる方法や描画品質を良くできる方法を使うように指示します。

自動

 自動(auto)も文字通りおまかせのモードで、品質を優先しつつ自動的に決定されます。

Inkscapeではどんなふうに描かれるか?

 SVGの世界で各描画モードがどのように定義されているか分かったとして、では、Inkscapeで実際にそれらを指定したときに、ビットマップオブジェクトはどのように描画されるのか?

 Inkscapeで実際に各モードを指定してみると、くっきりした輪郭(crisp-edges)、ピクセル化(pixelated)、速度優先(optimizeSpeed)はどれも元の1ピクセルを数ピクセルを使った大きな四角形に変換して描かれます。また、品質優先(optimizeQuality)と自動(auto)は、さらに少しぼかしが入ったように描かれます。

Inkscapeで描画モードを指定するには?

 Inkscapeでは、画像ファイルをインポートするときにダイアログ上で指定する手順と、次のように、ビットマップオブジェクトを選択してオブジェクト > オブジェクトのプロパティメニューを操作してオブジェクトのプロパティダイアログを表示し、その画像のレンダリングという項目で指定する手順があります。


 ただし、どういうわけかインポートするときのダイアログでは輪郭(crisp-edges)とピクセル化(pixelated)は指定することができません。これら2つは実はSVGの規格ではなくCSSの規格のほうで定義されている値なので、ビットマップオブジェクト以外にも指定できるようにするためにオブジェクトのプロパティダイアログのほうで指定する画面になったのかもしれません。

 意味的に重複しているパラメータもあったりして分からないところもありますが、元の画像にぼかしを入れてインポートしたいときは自動(auto)を選び、ぼかしを入れずにそのままのピクセルでインポートしたいときはoptimizeSpeedを選べば良さそうです。

 自動(auto)を選ぶと、インポート直後にぼかしが入った状態で表示され、そのビットマップオブジェクトを拡大すると、各ピクセルごとに拡大されるとともにぼかしも大きく入るようになります。