我的一个示例程序使用Skia。我有一个画布,在里面我用font_size 30写文本,这是代码片段。
string = "Test String";
SkString text(string);
SkPaint paint;
SkScalar textWidth;
paint.setTextSize(SkIntToScalar(font_size));
paint.getFontMetrics(&metrics);
textWidth = paint.measureText(text.c_str(), text.size());
textWidth将给出画布内文本的确切宽度。我的问题是如何获得文本的高度?请帮忙。
我过去曾亲自研究过这一点,这里的链接应该会对你有所帮助,尽管它是java,但据我所知,字体都有相同的想法。
我想你会想要从上升到底线,这只是上升。或者你可能想要从上到下的整个过程,这是上升和下降的结合,
如果你在有内衬的纸上写字,基线和你写的线是一样的,任何在上面的都是上升,任何在下面的都是下降。
我对skia一无所知,但在这里的这个链接上,快速了解一下skia,在FontMetrics中有一个名为fAscent的公共成员,以及fDescent,也许你可以使用它们。
您指定为"font_size"的字体大小是单行文本的高度