GDI+ では、テキストをさまざまなレベルの画質で描画できます。通常、高画質での描画は、低画質での描画よりも時間がかかります。テキストの画質レベルを設定するには、Graphics オブジェクトの TextRenderingHint プロパティに、TextRenderingHint 列挙体のいずれかの要素を設定します。
GDI+ では、従来のアンチエイリアシングに加えて、Microsoft® ClearType® ディスプレイ テクノロジに基づく新しいタイプのアンチエイリアシングを提供しています。Microsoft® Windows® XP だけで利用できる ClearType のスムージングにより、ラップトップのモニタや高画質フラット デスクトップ ディスプレイなど、デジタル インターフェイスを備えたカラー LCD モニタでの読みやすさが向上します。また、CRT 画面での読みやすさについても、ある程度向上します。
ClearType は、LCD のストライプの向きと順序に依存します。現時点では、ClearType は、RGB 縦ストライプに対してだけ実装されています。このことは、ディスプレイの向きを自由に変更できるタブレット PC を使用する場合や、縦または横に向きを変更できる画面を使用する場合には、問題となる可能性があります。
2 つの異なる画質設定でテキストを描画する例を次に示します。
Dim fontFamily As New FontFamily("Times New Roman")
Dim font As New Font( _
fontFamily, _
32, _
FontStyle.Regular, _
GraphicsUnit.Pixel)
Dim solidBrush As New SolidBrush(Color.FromArgb(255, 0, 0, 255))
Dim string1 As String = "SingleBitPerPixel"
Dim string2 As String = "AntiAlias"
e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel
e.Graphics.DrawString(string1, font, solidBrush, New PointF(10, 10))
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias
e.Graphics.DrawString(string2, font, solidBrush, New PointF(10, 60))
[C#]
FontFamily fontFamily = new FontFamily("Times New Roman");
Font font = new Font(
fontFamily,
32,
FontStyle.Regular,
GraphicsUnit.Pixel);
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
string string1 = "SingleBitPerPixel";
string string2 = "AntiAlias";
e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
e.Graphics.DrawString(string1, font, solidBrush, new PointF(10, 10));
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
e.Graphics.DrawString(string2, font, solidBrush, new PointF(10, 60));
上のコードによる出力を次の図に示します。