Главная страница
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
14-1134216383
TStas
2005-12-10 15:06
2006.01.08
Как устроены электронные таблицы?


2-1134580039
гость2
2005-12-14 20:07
2006.01.08
Определить открыто ли popup меню


2-1133423104
worldmen
2005-12-01 10:45
2006.01.08
Передать данные в родительскую форму.


2-1134755148
kami
2005-12-16 20:45
2006.01.08
Баальшие проблемы с TListView :(


2-1134926705
Silica
2005-12-18 20:25
2006.01.08
Объясните, пожалуйста