【问题标题】:Get the dimensions of a characters knowing all the details on the font了解字体的所有细节,获取字符的尺寸
【发布时间】:2023-03-03 01:59:01
【问题描述】:

我需要根据指定的字体创建字符位图。当他们指定字体时,他们正在指定:

  • 字体(例如 Microsoft Sans Serif)
  • 字体样式(例如粗体)
  • 大小(例如 14)
  • 效果(例如 Stikeout)
  • 脚本(例如西方)

知道了这一点,如果我知道字符和上面的所有信息,是否可以准确地确定字符的大小?我必须将它们绘制到与角色大小相同且不能更大的位图上。

谢谢!我在 VB.net 中完成了这一切,所以所有 .net 示例都是可以接受的。

【问题讨论】:

    标签: vb.net graphics bitmap character drawstring


    【解决方案1】:

    您需要使用Graphics.MeasureString() 方法。为表单(或其他图形输出对象)和字体创建图形对象,并使用它们来测量文本。

    Public Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        Using _
            graphics As Graphics = Me.CreateGraphics, _
            font As New Font("Microsoft Sans Serif", 14, FontStyle.Bold Or FontStyle.Strikeout)
    
            Dim text As String = "How big am I?"
            Dim size As SizeF = graphics.MeasureString(text, font)
            MessageBox.Show(size.ToString)
        End Using
    End Sub
    

    【讨论】:

    • 如果您不使用 Graphics 对象来绘制文本,您可能希望使用 TextRenderer.MeasureText()。
    • @Chris:谢谢!我知道必须有更好的方法。
    • @Hand:我认为 Graphics.MeasureString 也可以使用,但我认为在最新版本的 .Net 中,TextRenderer 用于呈现文本,因此 MeasureText 可能更合适。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    相关资源
    最近更新 更多