Какой высоты должна быть линия, чтобы рисовать буквы размером 8pt с помощью FreeType C

Мне удалось нарисовать буквы, но я заметил, что такие буквы, как gP, расстояние между нижней частью буквы g и верхней частью буквы P составляет 10 пикселей в высоту, поэтому линия должна быть высотой 10 пикселей? Это всегда так, если я хотите нарисовать буквы 10pt, строка должна быть 12?


person Guiso    schedule 21.07.2021    source источник
comment
На дюйм приходится 72 точки.   -  person stark    schedule 21.07.2021
comment
разве это не DPI?, dpi установлено на 100.   -  person Guiso    schedule 21.07.2021
comment
Нет. Количество пикселей равно DPI * точек / 72. Таким образом, 100 dpi * 10 pt / 72 — это 13 пикселей. Но вам нужен пробел (ведущий) между строками текста.   -  person stark    schedule 21.07.2021
comment
Какой API вы используете для рендеринга/управления шрифтами? у него, вероятно, должны быть какие-то средства для запроса метрик шрифта - max-ascender/decender и т. д. Вы также можете прочитать этому сообщению.   -  person G.M.    schedule 21.07.2021
comment
Точки — это единица физической длины, а не количество пикселей, поэтому вам обязательно нужно использовать разрешение (DPI) при преобразовании точек в пиксели. Это не может быть одинаковое преобразование для всех экранов.   -  person Nate Eldredge    schedule 21.07.2021
comment
Буквы будут записаны в кадре видео, обычно разрешение видео 1920 x 1080, но оно может отличаться, какое dpi следует использовать?, видео будут просматриваться на нескольких экранах, есть ли специальный способ сделать это для видео? @NateEldredge   -  person Guiso    schedule 21.07.2021
comment
@G.M. этот пост был полезен, спасибо, я кажется понял, формула result_size = (ascent + |descent|) / em_size * font_size, восхождение и спуск находятся в FT_Face в фритайпе   -  person Guiso    schedule 21.07.2021