我正在尝试在独立应用程序(Windows 或 Java)中测量字符串的大小(以像素为单位),但此应用程序报告的大小与 FF 或 IE 中报告的字符串大小不匹配。
我使用下面的代码来测量字符串“Graphics”的大小,它返回 97 个像素。FF 和 IE 将字符串的大小报告为 64 像素。我唯一想到的是dpi,但我明确设置了它。
谁能给我任何关于如何实现这一目标的指示?如前所述,我正在寻找一种独立的测量文本的方法,但结果需要与浏览器报告的大小相当。
Bitmap bmp = new Bitmap(1, 1);
SizeF f = new SizeF();
bmp.SetResolution(CreateGraphics().DpiX, CreateGraphics().DpiY);
using (Graphics g = Graphics.FromImage(bmp))
{
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
FontFamily ffm = FontFamily.Families.FirstOrDefault(r=>r.Name.Equals("Arial"));
using (System.Drawing.Font font = new System.Drawing.Font(ffm, 12.0F, FontStyle.Regular, GraphicsUnit.Point))
{
float ff = font.SizeInPoints;
f = TextRenderer.MeasureText(g,"Graphics", font, new Size(int.MaxValue, int.MaxValue), TextFormatFlags.NoPadding);
}
}
我通过创建这个 span 标签并使用 js 获取它的大小来测量浏览器中的大小。
<span style="font-family: Arial; font-size: 12pt;">Graphics</span>