我正在编写的小型Web应用程序使用一些文本填充临时隐形容器,测量生成的高度,然后使用它根据该高度生成一些guis。
这样做是因为并非所有字体都是等间距的,因此每次都需要测量它们以确定它们将占用多少空间。
现在,我可能需要缩放整个UI以适应不同的屏幕尺寸,并且想知道我是否可以可靠地缩放生成的高度。
简单地说:在缩放时是否保证所有前面的字形都是成比例的,或者你可以在不同的字体大小上有不同的字形宽度/间距?
e.g。大小为20的字体总是的大小是10大小的字体大小的2倍吗?
编辑:这是我做过的测试的另一个视图,并在下面的评论中发布:
答案 0 :(得分:2)
当你翻倍字体大小时,它会精确加倍。但这并不意味着字形按比例缩放。字体大小只是字体的属性,而不是字形的属性。字形缩放,但结果不是也不准确,因为渲染的粒度:抽象字形必须光栅化,即转换为像素图,这不可避免地改变它们的形状。
例如,考虑字母“e”的水平笔划。当然,宽度取决于字体大小,但在光栅化中,需要将其映射到一个像素,两个像素或一些其他像素数。即使是子像素渲染也不会改变这种情况;它只是修改了栅格化的工作方式。因此,在屏幕(或纸张)上呈现的笔划的宽度不能精确地反映字体大小。字形中的不同笔划的行为会有所不同,因此字体大小的增加并不意味着字形的精确放大。