- 締切済み
GDI+のDrawStringを使って文字を滑らかに描画したいのですが。。。
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(...); -> ジャギが目立つ。(画像の上の方) ビットマップ(メモリ)にスムーズなテキストを描画することはできないのでしょうか? ちなみにフォントはメイリオです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
回答No.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); こんな感じです。