透明ビットマップにアンチエイリアス処理されたテキストを描画し、アルファブレンドされたピクセルとして描画されたアンチエイリアス処理をしたいと思います。このようにして、ビットマップを任意の色のサーフェス(またはそのイメージ)に描画することができ、アンチエイリアス処理は正常に動作します。ここで透明ビットマップのアンチエイリアステキスト
は問題を簡略化して示すサンプルです:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Bitmap bitmap = new Bitmap(this.Width, this.Height);
Graphics g = Graphics.FromImage(bitmap);
g.Clear(Color.Empty);
g.DrawString("hello world", new Font(this.Font.FontFamily, 24), Brushes.Blue, new Point(50, 50));
e.Graphics.DrawImage(bitmap, new Point(0, 0));
}
そして、ここではその結果です:
alt text http://img194.imageshack.us/img194/9065/captureotd.png
本の究極の目標は、私の透明アルファブレンドを描画するためにUpdateLayeredWindow使用することです窓。私はConkyのようなアプリケーションを作成しています。テキスト用にClearTypeレンダリングを使用したいと考えています(これはもちろんアンチエイリアスなしで簡単です)。
現在、フォームの背後にある画面をつかみ、描画してからテキストを描画します。それは良く見えますが、更新する必要があり、描画が遅くなります。デスクトップ上にテキストを描画するための他のアイデアも歓迎します。
これはうまくいきました、ありがとう!それはClearTypeほどきれいではありませんが、ClearType(Consolasなど)用に設計されたフォントでさえもうまく見えます。 – iano
奇妙なことに、私のために 'AntiAliasGridFit'はアンチエイリアスがゼロのテキストを生成します。しかし、「アンチアリア」は働いている。 –
フォントサイズが小さすぎると 'AntiAliasGridFit'がアンチエイリアスを行わないことがあります。このようなフォントサイズでは、 'AntiAlias'はとにかく醜い結果をもたらします。 –