6

我想要做的是使用 DrawString() 方法将字符串绘制到位图。为此,我需要创建一个位图并从位图中获取一个 Graphics 对象,然后对该 Graphics 对象调用 DrawString()。

问题是,当我创建初始位图时,我如何提前知道要制作位图有多少像素宽和长?

我知道这与 MeasureString() 有关,但为了使用 MeasureString(),我需要从位图中获取 Graphics 对象。在我创建位图之前我无法得到它,直到我知道大小我才能做到这一点。这似乎是一个循环悖论!

有人请帮我解决这个问题吗?

4

2 回答 2

7

您可以创建一个小的静态位图来测量

private static Bitmap measureBmp = new Bitmap(1, 1);

然后你像往常一样测量

using (var measureGraphics = Graphics.FromImage(measureBmp))
{
    var stringSize = measureGraphics.MeasureString("measureString", this.Font);
}

图片大小不影响测量

于 2010-11-30T20:05:53.160 回答
0

我必须在 Java 中执行此操作,在其中我创建了一个未附加的图形元素来访问我需要的结构。您也许可以通过创建 1x1 位图来获得对 Graphics 对象的访问权。然后,让它被收集起来。

这里希望图形元素的尺寸不会影响 MeasureString 的结果。

于 2010-11-30T20:06:32.503 回答