2011-12-09 7 views
0

私はCreateFontを使用してPhotoshopに似たフォントを作成しようとしていますが、Photoshopの品質をよく見ればより良い結果が得られます。CreateFont APIの品質

ここで私は、フォントを作成するために使用しているコードです:

CreateFont(45, 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_OUTLINE_PRECIS, 
    CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_MODERN, __T("Times New Roman")); 

そしてここでは、2つのフォントの比較である:
Fonts
あなたはトップ1は非常に滑らかで見ることができるように。
CreateFontで別の引数を使用する必要がありますか?私はそれらを完全に理解していないと認めます。 説明がうまくいくはずです。

答えて

1

Photoshopは独自のアンチエイリアス処理を使用し、一貫して適用します。

Windowsは特定の制限内のフォントサイズに対してのみアンチエイリアスを使用し、サンプルが制限外にあるように見えます。ここでCreateFont documentation(強調追加)からの引用だ:

ANTIALIASED_QUALITYフォントはアンチエイリアス、または平滑化、フォントがそれをサポートしている場合や、フォントのサイズが小さすぎる、または大きすぎではありません。

GDI +での制御が優れている可能性があります。

+0

GDI +フォントで描画するコントロールを設定する方法はありますか? 'WM_SETFONT'は' HFONT'しか受け付けませんので、オーナーがそれを描く必要がありますか?または、これにいくつかのトリックがあります。 – Josh

+0

@Josh、あなたが正しいです、GDI +を使用する唯一の方法は、所有者の描画を行うことです。サンプルを見てみると、Windowsは実際にフォントをアンチエイリアスしています。Photoshopよりもはるかに悪い仕事です。 –