次のコードを使用して、ビットマップにテキストを描画しています。
using (Font font = new Font("Arial", 10.0f, FontStyle.Bold, GraphicsUnit.Point))
{
//draw the text
graphics.DrawString("Some text", font, Brushes.White, rect, stringFormat);
}
それはうまくいきます。レンダリングされたテキストは次のとおりです。
文字をもう少し大きくしたい。フォント サイズとして 11 を設定すると、次のようになります。
私が欲しいものには大きすぎます。10.25、10.5などを試しましたが、10と同じ結果になります。
私も設定しようとしGraphicsUnit
ましPixel
たが、同じように動作します(カスタムフォントサイズを設定する可能性はありません)。
これが私の質問です:
GDI+ (C#) を使用してテキストを描画する場合、レンダリングされたテキストのサイズを「微調整」する可能性はありますか?
編集:より完全なコードスニペット(要求に応じて):
using (Bitmap bitmap = new Bitmap(width, height))
using (Graphics graphics = Graphics.FromImage(bitmap))
using (Font font = new Font("Arial", 10.0f, FontStyle.Bold, GraphicsUnit.Point))
{
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
Rectangle rect = new Rectangle(0, 0, width, height);
//method 1
StringFormat stringFormat = new StringFormat();
stringFormat.Alignment = StringAlignment.Center;
stringFormat.LineAlignment = StringAlignment.Center;
graphics.DrawString("Some text", font, Brushes.White, rect, stringFormat);
//method 2
TextFormatFlags flags = TextFormatFlags.HorizontalCenter |
TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak;
TextRenderer.DrawText(graphics, "Some text", font, rect, Color.White, flags);
bitmap.Save(stream, ImageFormat.Png);
}