确定位图大小以保存文本字符串

时间:2010-11-30 19:59:56

标签: c# winforms graphics bitmap drawstring

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

问题是,我怎么知道,在我创建初始位图时,我的位图有多少像素宽和长?

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

有人请帮帮我吗?

2 个答案:

答案 0 :(得分:7)

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

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

然后你照常测量

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

图像尺寸不影响测量

答案 1 :(得分:0)

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

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