Войти
ПрограммированиеФорумОбщее

freetype центрировать относительно точки (2 стр)

Страницы: 1 2
#15
20:45, 15 окт. 2018

Aroch
Это не вывод, это такой максимальный размер глифа создает после FT_Set_Pixel_Sizes


#16
20:48, 15 окт. 2018

Aroch
> Вообще у себя я делаю так, когда мне надо отцентрировать текст вертикально в
> каком-нибудь выджите:
А как ты высчитываешь font_height?

#17
20:49, 15 окт. 2018

IROV..
> Это не вывод, это такой максимальный размер глифа создает после
> FT_Set_Pixel_Sizes
тогда font_height / 2 будет проходить строго по центру твоей картинки.
> А как ты высчитываешь font_height?
ты его задаешь самостоятельно через FT_Set_Pixel_Sizes.

#18
21:00, 15 окт. 2018

Aroch
не может быть такого что бы font_height * 0.5 проходил по центру буквы, по центру глифа да, по причине что у нас плавающий baseline и так же есть понятие spacing
Представь себе что у тебя буква Q имеет в два раза больше чем буква A за счет своего венчурного хвоста. Так вот, размер face size у тебя будет по максимальной букве.

#19
21:19, 15 окт. 2018

IROV..
> не может быть такого что бы font_height * 0.5 проходил по центру буквы
я и не говорил что он будет по центру буквы, он будет по центру всей картинки, раз ты сказал
> Это не вывод, это такой максимальный размер глифа создает после
> FT_Set_Pixel_Sizes

> размер face size у тебя будет по максимальной букве.
не верно, размер face_size гарантирует тебе что все буквы шрифта будут не больше чем face_size и впишутся в него, у тебя могут быть вообще все буквы быть меньше чем он. Поэтому и центрировать исходя из его размеров самое универсальное решение. Если же ты хочешь центрировать для шрифтов в которых "хвостики" то учитывай fontDescent.

#20
21:31, 15 окт. 2018

IROV..
> это по сути 0 и от него идет ascent и descent
Насколько я знаю - нет. 0 - это там где glyph origin. Опять же, я не знаю как он во FreeType реализовано, и какой полигон оно тебе возвращает. У меня WinAPI с его GetGlyphOutline, которым я получаю битмап глифа в его BlackBox области. Это вот такая штука:
Изображение
Соотвественно чтобы нарисовать у себя глиф по нужной линии я поднимаю глиф над строкой на tmAscent - gmptGlyphOrigin.Y
Аналогично должно быть для FreeType

#21
21:34, 15 окт. 2018

Ну и если эта картинка для фритайпа верная:
Изображение
то тебе глиф надо поднимать на bearingY

#22
22:16, 15 окт. 2018

Aroch
Размер фонта который я выставляю - 40. И 20 пикселей это много что можно видеть на скринах.
MrShoor
Я сейчас так и подымаю, но на этом этапе у меня нету глифа)

#23
6:25, 16 окт. 2018

IROV..
> Размер фонта который я выставляю - 40. И 20 пикселей это много что можно видеть
> на скринах.
значит шрифт такой.

В общем если кратко как я делаю у себя с удовлетворительным для себя результатом:

+ Показать

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.