Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
14-1134667828
Gero
2005-12-15 20:30
2006.01.08
Яндекс не отстает


14-1134222044
Free0n
2005-12-10 16:40
2006.01.08
Дано такое задание:


2-1135237508
kyn66
2005-12-22 10:45
2006.01.08
RoundTo работает неверно?


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


2-1134927056
Silica
2005-12-18 20:30
2006.01.08
Что означает данный код?




   Наверх