Я использую 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» — это высота текста в одну строку