GDI+/.NET шрифты, узнать информацию о конкретном wchar_t
От: _Winnie Россия C++.freerun
Дата: 27.08.05 18:47
Оценка:
Это кросспостинг, так как .NET шрифты и GDI шрифты, как я понял из MSDN почти одно и тоже.

Нужно написать программу по конвертации любого шрифта в свой растровый формат. Читаю MSDN по этому поводу.
Как это лучше сделать?

Можно узнать у FontFamily высоту (GetEmHeight) шрифта (еще не пробовал), высоту нижней части букв (GetCellDescent), высоту от строки написания до самой верхушки буквы(GetCellAscent).
1) Чем отличается EmHeight от суммы Descent и Ascent? Что такое EmHeight(em size)!? Часто упоминается, но не объясняется.

2)Что такое Design Units, как их перевести в пиксели (или другие GraphicsUnits)?
Есть предположение, что можно создать конкретный Font объект, узнать его LineSpacing в пикселях, разделить его на LineSpacing в DesignUnits FontFamily и получить таким образом соотношение между DesignUnits и пикселями. Но как-то это криво выглядит.

3)Как узнать ширину конкретного char (Скажем, CharWidth)?

Как мне заполнить массив byte [(CellDescent+CellAscent) * CharWidth] изображением конкретного char? Можно нарисовать в Graphics, но тут у меня возникает два вопроса:
4)Как создать этот Graphics?
5) Как эффективно получить обратно изображение из Graphics? (В массив байтов).
Правильно работающая программа — просто частный случай Undefined Behavior
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.