Text 像Firefox这样的应用程序如何高效地计算文本高度?

Text 像Firefox这样的应用程序如何高效地计算文本高度?,text,gdi+,measurement,kerning,Text,Gdi+,Measurement,Kerning,我很好奇快速应用程序在计算非常长的文本页面(例如聊天日志或大型文档)高度时,Safari是一个更好的例子 考虑到有大量具有相同行高的文本,这已经是可以乘以这些行数的东西。但是,如何知道a将在特定宽度内跨越多少条线 我能想到的是: 计算每个字符的宽度并将其存储以便快速添加, 用它来计算单词的宽度, 添加单词和空格的宽度,同时与块级宽度进行比较,根据需要添加行。 这看起来确实非常快,因为加法和比较比在GDI+中测量字符串要快得多。但我不知道这样做是否可行,因为可靠性是第一位的,而AFAIK文本呈现通

我很好奇快速应用程序在计算非常长的文本页面(例如聊天日志或大型文档)高度时,Safari是一个更好的例子

考虑到有大量具有相同行高的文本,这已经是可以乘以这些行数的东西。但是,如何知道a将在特定宽度内跨越多少条线

我能想到的是:

计算每个字符的宽度并将其存储以便快速添加, 用它来计算单词的宽度, 添加单词和空格的宽度,同时与块级宽度进行比较,根据需要添加行。 这看起来确实非常快,因为加法和比较比在GDI+中测量字符串要快得多。但我不知道这样做是否可行,因为可靠性是第一位的,而AFAIK文本呈现通常会引入内核,我不知道从GDI+获取这些信息有多容易或有多难

还有,是什么让我相信Firefox会计算每个字母的大小和位置