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

Ice*_*ind 5 c# graphics bitmap drawstring winforms

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

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

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

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

Alb*_*nbo 7

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

private static Bitmap measureBmp = new Bitmap(1, 1);
Run Code Online (Sandbox Code Playgroud)

然后像往常一样测量

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

图像的大小不会影响测量

  • icemanind:1x1 位图仅用于测量。一旦你得到`stringSize`,你就可以创建合适大小的位图。 (2认同)