2009-04-08 10 views
0

アンチエイリアスやClearTypeを使わずにレンダリングされた文字を含むビットマップを生成する必要があります。WinFormsでアンチエイリアス処理されていないフォントを生成する

Win32-landでは、lfQualityがNONANTIALIASED_QUALITYに設定されたフォントを作成して描画していました。

私は次のようにリサイズしてこれを行うことを試みた:

using(Font smoothFont = new Font("Arial", 30, GraphicsUnit.Pixel)) 
    { 
    LOGFONT lf = new LOGFONT(); 
    smoothFontToLogFont(lf); 
    lf.lfQuality = NONANTIALIASED_QUALITY; 
    using (Font roughFont = Font.FromLogFont(lf)) 
    { 

しかしroughFontはまだClearTypedテキストをレンダリングするようです。

私はWinFormsをあきらめ、C言語でこれを行うべきですか、あるいはここで欠けているものがありますか? (私のLOGFONTクラスとそれに関連するlfQualityのデフオルトは、フレームワークソースからまっすぐに来るので、彼らは正しいと思います)

答えて

1

私は間違った場所を探していました。このようにGDI +

gr.TextRenderingHint = TextRenderingHint.SingleBitPerPixelGridFit 
+0

ありがとう!この解決策は私に大きな問題を救った。私の以前のスーパーファジーフォントは今ではすばらしいです:) – ChandlerPelhams

0

私はそれがビットマップではないと知っているが、私は私の問題の解決策を探していたし、このLabelEx修正

using System.Drawing; 
using System.Drawing.Text; 

class LabelEx : System.Windows.Forms.Label 
{ 
    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) 
    { 
     e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixelGridFit; 
     base.OnPaint(e); 
    } 
} 
で出てきた:代わりに、あなたはこのように、オブジェクトのグラフィックにTextRenderingHintプロパティを設定する必要があります

多分誰かが私を見つけるでしょう便利です

関連する問題