我正在为屏幕上的小字体开发一些 OCR 软件。字体在浏览器中呈现。我注意到它们是使用 ClearType 渲染到屏幕上的,并且无论它们位于屏幕上的哪个位置,单词中的字母似乎都是相同的,尽管我没有检查很多情况,只是一些常见的情况。
例如,在下图中,字母 a 重复了两次,一次在开头,然后从结尾第 3 次重复。字母 a 看起来完全一样,一个像素一个像素。我的问题是,对于 ClearType 渲染中相同的字体和相同的字体大小,字母 a 是否总是相同的?这同样适用于同一字体内的所有字母吗?
我正在为屏幕上的小字体开发一些 OCR 软件。字体在浏览器中呈现。我注意到它们是使用 ClearType 渲染到屏幕上的,并且无论它们位于屏幕上的哪个位置,单词中的字母似乎都是相同的,尽管我没有检查很多情况,只是一些常见的情况。
例如,在下图中,字母 a 重复了两次,一次在开头,然后从结尾第 3 次重复。字母 a 看起来完全一样,一个像素一个像素。我的问题是,对于 ClearType 渲染中相同的字体和相同的字体大小,字母 a 是否总是相同的?这同样适用于同一字体内的所有字母吗?
它可能会也可能不会,这取决于字体、大小和正在使用的 ClearType 版本(以及应用了哪些应用程序设置进行渲染)。微软对 ClearType 的解释有点涉及到这一点,甚至显示了一个示例,您可以观察到一个字符的两个实例不呈现相同的情况(参见右侧的 'elle';'e' 和 'l'在第二种情况下渲染不同)。这与使用分数前进宽度有关,它被解析到最接近的 1/64 像素。因此,您可能最终会得到单个字符的许多不同实例(尽管如您所见,差异相当微妙)。
简而言之:我不会写任何依赖于一个字符的任何两个实例最终完全相同的东西。它们将非常相似,但并不完全相同。