【Java】解决 drawString 方法 / 带基线 Baseline 图片添加文字位置不准确的方法(标准化方法)

问题

正常来说带基线的情况下,给图片渲染文字的 x, y 坐标是这样的:
【Java】解决 drawString 方法 / 带基线 Baseline 图片添加文字位置不准确的方法(标准化方法)
会以图中黑点水平为基线位置渲染,这不太符合布局的逻辑,一般我们都是习惯 x, y 恰好在文字的左上角(就像 Python 的 pillow 库一样)

解决

图解

【Java】解决 drawString 方法 / 带基线 Baseline 图片添加文字位置不准确的方法(标准化方法)
可以看出必须纠正的长度是:
(asent + decent - fontSize) / 2

那么,最终的 y 值就应在 asent 之上,纠正为:
standY = Y + asent - (asent + decent - fontSize) / 2

其中 Y 是要画的位置(指文字恰好的左上角位置),standY 是要写在函数里的。也就是说,多画 asent - 纠正 即可。