2015-08-25 11 views
1

Я пытаюсь использовать FreeType для создания растрового шрифта для микроконтроллера, но я застрял на фундаментальном различии в том, как выражаются координаты. Мой микроконтроллер ожидает смещение X и Y для растрового изображения глифа относительно начальной точки в верхнем левом углу, тогда как FreeType дает мне «опоры» относительно невидимой базовой линии. Я почти уверен, что bearingX - это то, что я хочу для своего смещения X, но как я могу определить смещение Y? Я попытался вычесть подшипник с высоты подъема, но некоторые смещения выходят отрицательно. Это неприемлемо, потому что это делает невозможным рисование текста в верхнем левом углу дисплея.Преобразование координат FreeType в исходные координаты

+0

Я не понимаю, почему высота подъема должна быть релевантной, которая может быть или не быть наверху, поэтому неудивительно, что некоторые координаты выходят отрицательно. Некоторые графики используют координату y сверху вниз, другие - снизу вверх. Я никогда не нашел того, где направление х не было направо. –

+0

Я пытался использовать высоту высоты для определения местоположения базовой линии. То, как я это понимал, высота возвышения была самой высокой точкой от базовой линии, которую мог бы расширить глиф. По-видимому, это не так. Как вы предлагаете мне получить смещение Y сверху вниз от «подшипника», которое описывает расстояние от произвольной базовой линии? –

+0

Пройдите через все глифы и найдите тот, у которого наибольший Y выше базовой линии. Затем добавьте пару пикселей для удачи, и вам должно быть хорошо идти. – user3386109

ответ

1

Я решил свою проблему, предварительно создавая все глифы и отслеживая максимальное восхождение и спуск в фактических визуализированных пикселях. Затем я вычислил максимальную высоту всех глифов из двух значений и использовал это для вычисления Y-смещения для каждого растрового изображения глифа из его верхнего подшипника. С дополнительным шагом рендеринга я также могу изменить масштаб лица, чтобы он более точно соответствовал моей желаемой высоте пикселя.