我正在使用以下代码在位图上绘制文本:
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);
}