假设使用 10点字体渲染的字符串的宽度为200像素。如果我使用 15点字体(增加50%)绘制相同的字符串,它的渲染宽度是否也会增加50%(到 300像素)?
(当然,这假定字体和呈现文本的Graphics2D
没有其他更改。)
换句话说,字体的磅值和呈现文本的大小之间是否存在直接的线性关系?还是有其他变量阻止我做出任何此类假设?
最佳答案
您已接近假设。
但是,字母之间的间距并不一定总是正确缩放。我相信这与有时会有余数的整数除法有关,但是我有一段时间没有看Java FontMetrics
类代码了。
最安全的做法是始终创建具有适当字体大小的新Font
,并在getStringBounds
类上调用FontMetrics
方法。