Текущий архив: 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.46 MB
Время: 0.007 c