如何缩放字体以适合指定的矩形

时间:2013-10-28 04:29:38

标签: c# math graphics gdi+

我想在指定的矩形中绘制一个字符串,但问题是指定字体的字符串可能在矩形的边界之外。

所以我想要一种缩放字符串字体以适应指定矩形区域中的字符串的方法。

public Font scaleFont(String text, RectangleF rect, Graphics graphics, Font pFont)
        {
            float fontSize = 20.0f;
            Font font = pFont;
            float width = graphics.MeasureString(text, pFont).Width;
            float height = graphics.MeasureString(text, pFont).Height;
            fontSize = ((rect.Width / width)  * pFont.Size);
            float heig = (rect.Height / height);
            return new Font(pFont.FontFamily, fontSize);
        }

上面的代码给我缩放字体以适应矩形顶部区域中的字符串,但我想要适合整个区域(附上算法以上的字符串)

Output of algo

但我想要以下输出。

enter image description here

1 个答案:

答案 0 :(得分:1)

通过拟合整个区域,你的意思是?

enter image description here

如果是这样,常见的方法是在位图上绘制文本并将其与任何对象匹配。

为避免像素化,您可以使用您的代码来检测最佳字体大小和最佳位图大小。