InterpolationModeとSmoothingModeの比較をしてみる

においてInterpolationModeとSmoothingModeの比較をしてみましたが、Graphics.DrawImageメソッドを使った場合はSmoothingModeは関係ないように思えます。実際にSmoothingModeを変更して保存したファイルを比較してみましたが、ファイルの内容は同一です。

SmoothingModeは直線の描画をするときに効果を発揮します。では直線ではなく円や文字の描画をするときはどうなのでしょうか? 今回はSmoothingModeをさまざまに設定して出力される画像を拡大して比較してみます。拡大率は10倍とし、補間モードはNearestNeighborを採用します。

まずは補間モードはNearestNeighborでサイズを8倍に拡大するメソッドを示します。スムージング処理が行なわれていないのであれば斜めに直線を引けばギザギザの直線が描画されるはずです。

以下のコードを実験してみると以下のようになります。

<実行結果>

次に内部を塗りつぶすメソッドでも試してみます。

実行結果は以下のようになります。

<実行結果>

ではGraphic.DrawStringメソッドを呼び出すときはどうなるのでしょうか? 実行結果はかわりません。

<実行結果>

>アンチエイリアス処理をして描画する – .NET Tips (VB.NET,C#…)によると、文字列の描画におけるアンチエイリアス処理は、Graphics.TextRenderingHintプロパティで指定しなければならないそうです。

<実行結果>

ではこれをGraphics.DrawImageメソッドを呼び出すときに設定するとどうなるでしょうか?

どれを選択しても下図と同じで変化はまったくみられませんでした。