2

指定した四角形に文字列を描画したいのですが、指定したフォントの文字列が四角形の境界外にある可能性があります。

したがって、指定された長方形の領域に文字列が収まるように文字列フォントをスケーリングする方法が必要です。

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

上記のコードは、文字列が長方形の上部領域に収まるようにスケーリングされたフォントを提供しますが、領域全体に収まるようにしたいです(上記のアルゴの出力を添付)

アルゴリズムの出力

しかし、次の出力が必要です。

ここに画像の説明を入力

4

1 に答える 1

1

全域に収まるということは?

ここに画像の説明を入力

その場合、一般的な方法は、ビットマップ上にテキストを描画し、必要なオブジェクトに合わせることです。

ピクセル化を回避するために、コードを使用して最適なフォント サイズと最適なビットマップ サイズを検出できます。

于 2013-10-28T05:02:03.920 に答える