gpt4 book ai didi

c# - MeasureText 无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:47 24 4
gpt4 key购买 nike

我有一个位图对象,我想在其上绘制一些文本。该文本应该针对给定点正确对齐。这就是我现在的做法:

newBitmap = Image.FromFile(bg) as Bitmap;
Graphics g = Graphics.FromImage(newBitmap);
var cvt = new FontConverter();

String temp = "ddddd"

ftemp = cvt.ConvertFromString("Times New Roman; 12pt") as Font;
SizeF p2Size = TextRenderer.MeasureText(temp, ftemp);
p2Nick = new PointF(PosX - p2Size.Width, PosY);

g.DrawString(temp, ftemp, new SolidBrush(myColor), p2Nick);

问题是我为 temp 输入的文本越多,与右侧的距离就越大。

enter image description here

也许有人可以指出我的错误。当然,我简化了很多,但这几乎就是所发生的事情。

最佳答案

使用相同的库来测量您正在绘制的字符串可能会更好:

例如:

SizeF p2Size = g.MeasureString(temp, ftemp);

此外,系统的 DPI 文本设置会影响结果,您可以通过考虑:Graphics.DpiX 来考虑这一点。

最后,我认为有一个设置 TextFormatFlags.NoPadding 可以提供帮助,但如果您切换到 Graphics,您将使用 StringFormat 对象。 MeasureString().

关于c# - MeasureText 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8042351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com