dポイントプレゼントキャンペーン実施中!

GDI+のDrawStringを使って文字を滑らかに描画したいのですが。。。

環境は、VC++のWin32プロジェクトです。

WindowのデバイスコンテキストからGraphicsオブジェクトを生成し、DrawStringとすると滑らかに描画されます。
しかし、BitmapオブジェクトからGraphicsオブジェクトを生成し、DrawStringを行うとビットマップフォントのようです。

Graphics g(hdc);

g.DrawString(......); -> この場合はなめらか(画像の下の方)

しかし、
Bitmap bmp(w, h, PixelFormat32bppARGB);
Graphics g (&bmp);
g.SetSmootingMode(SmoothingModeHighQuality);
g.DrawString(...); -> ジャギが目立つ。(画像の上の方)

ビットマップ(メモリ)にスムーズなテキストを描画することはできないのでしょうか?
ちなみにフォントはメイリオです。

「GDI+のDrawStringを使って文」の質問画像

A 回答 (1件)

ご質問のような現象を確認できる最低限のコードをお示しいただけませんか?



DrawStringの引数Fontに与えたものが TrueTypeフォントでは無いってことは無いでしょうね …

この回答への補足

ちなみにフォントはメイリオです。
Trueタイプだと思います。

コードはこうです。

char_t buffer[256];
Bitmap bitmap(200, 30, PixelFormat32bppARGB);
Graphics xx(&xxbmp);

xx.SetSmoothingMode(SmoothingMode::SmoothingModeHighQuality);
wsprintfW(buffer, L"Total Time: %d.%03d", (t2-t1)/1000, (t2-t1)%1000);
xx.DrawString(buffer, wcslen(buffer), &Font(L"メイリオ",12.0), RectF(0, 0, 200, 30), NULL, &SolidBrush(Color(Color::Black)));

Graphics g(hdc);
g.DrawImage(&xxbmp, 0, 0);

こんな感じです。

補足日時:2009/12/25 16:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!