Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.08;
Скачать: CL | DM;

Вниз

Отображение текста TrueType, минуя функции GDI   Найти похожие ветки 

 
Павлик Морозов   (2005-11-01 20:31) [0]

Уважаемые господа!

1. Мне необходимо узнать ТОЧНЫЙ размер (высота, ширина) заданной строки текста, для которого задан TrueType Font (хотя, возможны и растровые шрифты);
2. Мне необходимо рисовать тексты, шрифт которых TrueType, минуя стандартные средства GDI для вывода текста, так как для текста (извините за тавтологию), возможно будут заданы трёхмерные повороты.
Про первую задачу я несколько почитал в книжке Фень Юаня "Программирование графики для Win2000", но что-то ничего хорошего не вышло :(
Про вторую задачу (которая по сути решит первую) - в общем - путь решения понятен - необходимо извлечь "контуры" текста и нарисовать их соответственно функциями PolyLine, PolyBezier или чем-то подобным,
НО возможно кто-то располагает freeware-библиотекой для решения подобной задачи?.. или уже решал задачу и будет рад помочь дилетантам в этом деле?

Заранее благодарен.

P.S. если сообщение "не в тему", просьба направить на нужную:)


 
GuAV ©   (2005-11-01 21:27) [1]

Думаю, что для извлечения элементов шрифта следует всё же применять функции GDI.
Я никогда не сталкивался с такой задачей, но похоже, что для этого используется GetGlyphOutline с параметром GGO_NATIVE.


 
wicked ©   (2005-11-03 00:39) [2]

решений море.... вопрос только в том, насколько трудоемкое и мощное необходимо....
можно воспользоваться, например, http://www.freetype.org/
недостатком её является то, что файл со шрифтом ей надо подсовывать в явном виде....
если же данные про шрифт нужно получить из HFONT, то тут уже посоветовали GetGlyphOutline.... функция непростая по части результатов, но выдает то, что нужно.... для компоновки отдельных глифов в строку рекомендую взглянуть на GetCharacterPlacement - очень мощная штука, учитывает множество нюансов во взаимном расположении отдельных символов в строке.... также, для облегчения жизни, понадобится GetFontLanguageInfo - она предоставляет часть параметров, которые потом можно передать ф-ции GetCharacterPlacement....
если нужно подробней, могу дать исходник, но он на билдере (си++) и с использованием STL....
как вариант - http://www.koders.com - вводим имя функции и смотрим, как другие их используют....

для рендеринга текста GDI подходит только в одном случае - если результирующие размеры символов будут соответствовать размеру шрифта не меньше 16 - 20 пунктов.... если меньше - выглядит некрасиво и трудночитаемо....
поэтому смотрим в сторону сторонних рисующих библиотек, например,
http://www.cairographics.org/introduction
либо что-то отсюда - http://vectorgraphics.sourceforge.net/
также можно попробовать GDI+, но тут я не советчик, так как не пробовал с ним работать....



Страницы: 1 вся ветка

Текущий архив: 2006.01.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
1-1133898010
Rem
2005-12-06 22:40
2006.01.08
EOleException и сообщение об исключительной ситуации


10-1111046230
LgcPiton
2005-03-17 10:57
2006.01.08
Как узнать заущено ли приложение


3-1131954947
mmms
2005-11-14 10:55
2006.01.08
Спросить о сохранении после редактирования DBGrid


4-1130759002
Reset
2005-10-31 14:43
2006.01.08
В OLE32.dll есть курсор с именем 2 ...


14-1134554037
Vovchik_A
2005-12-14 12:53
2006.01.08
Может хватит ?