簡體   English   中英

如何縮放字體以適合指定的矩形

[英]How to scale font to fit in a specified rectangle

我想在指定的矩形中繪制一個字符串,但是問題是具有指定字體的字符串可能在矩形的邊界之外。

所以我想要一種縮放字符串字體以適合指定矩形區域中的字符串的方法。

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);
        }

上面的代碼給了我縮放字體以適合字符串在矩形的頂部區域,但是我想適合整個區域(附加上面的算法)

算法輸出

但是我想要以下輸出。

在此處輸入圖片說明

通過整個區域的擬合,您的意思是?

在此處輸入圖片說明

如果是這樣,通常的方法是在位圖上繪制文本並將其適合您想要的任何對象。

為了避免像素化,您可以使用一段代碼來檢測最佳字體大小和最佳位圖大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM