Мне удалось нарисовать буквы, но я заметил, что такие буквы, как gP, расстояние между нижней частью буквы g и верхней частью буквы P составляет 10 пикселей в высоту, поэтому линия должна быть высотой 10 пикселей? Это всегда так, если я хотите нарисовать буквы 10pt, строка должна быть 12?
Какой высоты должна быть линия, чтобы рисовать буквы размером 8pt с помощью FreeType C
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