![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблема со масштабированием шрифтов
z0ne © (2002-12-15 16:35:00)ситуация такая:
Есть штифт например с шириной (lfWidth) = 30, для него ф-ция GetTextWidth32 возвращает cx = 30. Теперь применяем коэфициент, например, 0.533111 -> получаем lfWidth=16, a Get...Width32 возвращает 17.
А вообще вопрос такой: Как работать (получить) не целые размеры шрифта.
z0ne (2002-12-19 10:55:00) [1]спасибо !!! буду разбираться ....
Хотя, наверное, получение векторов через GetPath не сильно далеко в сторону от Вашего пути.
Всё-равно придётся столкнуться с проблемами округления при масштабировании. Но всё-равно спасибо
Слесарь Матерящийся (2002-12-18 16:00:00) [2]Опс! я всё-таки нашёл последнюю статью (Q113262):
http://support.microsoft.com/default.aspx?scid=KB;en-us;q113262
Удачи!
Слесарь Матерящийся (2002-12-18 15:25:00) [3]>а код...можно ???
Можно. Но за $$$ :)
>при борьбе с GetGlyphOutline() не получалось
Изучите документацию MSDN, статьи Q243285 и Q87115.
Ещё был пример Q113262, не знаю, выкинули его или нет.
Там есть разбор глифов и вывод изображений литер в окошко.
Весь код в Сях.
Если не найдёте, могу скинуть на мыло.
z0ne (2002-12-18 14:27:00) [4]а код, хотябы примерный, можно ???
можно в мыло/
По памяти .. что-то у меня при борьбе с GetGlyphOutline() не получалось.
Да ... нужно получить ВЕКТОРНОЕ представление шрифта
------------
Pleeeeas
Слесарь Матерящийся (2002-12-18 10:27:00) [5]>не целые размеры шрифта
Можно так: создать объект HFONT для ttf-фонта (CreateFontIndirect()), высотой, скажем, 1000 ед.;
затем извлечь из него графику (GetGlyphOutline()), отнормировать по высоте (==1) (ваш код, но тут не без подводных камней - с высотой);
далее выводить в своём масштабе (float) повекторно или выполнив растеризацию (тоже ваш код).
Так что вопрос лишь в том, нужно ли это.
z0ne (2002-12-18 09:17:00) [6]Ну поможете же кто-нибудь ....