Author |
Message |
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Привет!
После того, как получено векторное представление шрифта (форма символа), как дальше оно выводится на экран моника - в виде картинки знакоместа (скажем bmp-формата) или векторным движком соотв. в векторной картинке ?
_________________Vasil Ivanov vasil-i@yandex.ru
|
18 Oct 2013 06:52 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22543 Location: Silicon Valley
|
ну движок по видимому должен растеризировать векторный фонт, кешируя буквы, чтобы одно и тоже не перерастеризировать по многу раз - см. freetype
|
18 Oct 2013 09:04 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Давным-давно экпериментировал с графикой посредством BGI от
Borland. Делал что-то вроде текстового редактора/просмотровщика.
Конечно все было не очень быстро - но довольно прилично.
Дак вот - во время прорисовки символов, если нажать "pause"
скорость вывода тормозилось раз в 100, и можно было видеть как
прорисовывается каждая буква - как будто рисуется карандашом.
|
18 Oct 2013 20:50 |
|
|
vinxru
Retired
Joined: 27 Mar 2013 04:55 Posts: 587 Location: 62.192.229.16
|
Я то же писал, но по другому.
Каждый отрезок/кривая в символе, превращается в выражение x=ay+b и ограничение y>=y0 && y<=y1.
Дальше, для каждой строки находим все решения уравнений. То есть находим координаты точки пересечения прямой/кривой и горизонтали. На входе y, на выходе x.
Точнее получаем массив чисел, который упорядочиваем. Потом рисуем линию от первой до второй точки, от третьей до четвертой и т.д.
Если число получилось дробное, то можно ставить не белую, а серую точку. Чуть-чуть повышается качество.
|
19 Oct 2013 01:25 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Когда я пересел со "Специалиста" на русскую ИБМ-ПыСи "Искра-1030", то очень хотелось
чтобы в ней эмуль "Специалиста" был... но разрешение экрана этого не позволяло (ХХХ х 200).
Тогда я решил, что в текстровых строках "Специалист" поместить всё же можно, если применить
масштабируемые векторные шрифты.
Ну и поскольку окромя Васика 4.5 у меня не было никакого софта, то я написал такие шрифты
через его оператор DRAW.
Текстовую эмляцию"Специалиста" я не закончил тогда... а вот сами шрифты очень пригодились
позже...
Потому как мои символы можно было вывести в любую точку экрана, а вот родные шрифты
"ИБМ-ПыСи" - позиционировались по знакоместам даже в графических режимах.
Если найду картинку и исходник - сейчас выложу здесь...
Значит - это кусок алгоритма создания шрифта:
Для скорости ASCII-таблица делилась на строки, для каждой строки - своя такая подпрограмма.
А это, собственно - вывод их на экран:
_________________ iLavr
|
19 Oct 2013 05:45 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Если только кэшировать сразу весь алфавит. Когда появилась Винда, а с ней и ttf-шрифты - тогда железо было не шибко навороченное, но в то же время, шрифты выводились в приличной скоростью при выводе страницы текста.
_________________Vasil Ivanov vasil-i@yandex.ru
|
20 Oct 2013 12:22 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Думаю это был просто построчный вывод пикселей символа(ов). Скажем как прорисовка символов в текстовом режиме экрана.
_________________Vasil Ivanov vasil-i@yandex.ru
|
20 Oct 2013 12:27 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
| | | | Lavr wrote: Когда я пересел со "Специалиста" на русскую ИБМ-ПыСи "Искра-1030", то очень хотелось чтобы в ней эмуль "Специалиста" был... но разрешение экрана этого не позволяло (ХХХ х 200). Тогда я решил, что в текстровых строках "Специалист" поместить всё же можно, если применить масштабируемые векторные шрифты. Ну и поскольку окромя Васика 4.5 у меня не было никакого софта, то я написал такие шрифты через его оператор DRAW. Текстовую эмляцию"Специалиста" я не закончил тогда... а вот сами шрифты очень пригодились позже... Потому как мои символы можно было вывести в любую точку экрана, а вот родные шрифты "ИБМ-ПыСи" - позиционировались по знакоместам даже в графических режимах. Если найду картинку и исходник - сейчас выложу здесь... Значит - это кусок алгоритма создания шрифта: Для скорости ASCII-таблица делилась на строки, для каждой строки - своя такая подпрограмма. А это, собственно - вывод их на экран: | | | | |
А вывод символов из bmp-картинки (массив символов) не быстрее будет ?
_________________Vasil Ivanov vasil-i@yandex.ru
|
20 Oct 2013 12:31 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22543 Location: Silicon Valley
|
Шрифт может оказаться больше одного алфавита (unicode однако), поэтому растеризовать надо только те буквы, что реально выводятся, причём в том размере, который реальной нужен.
|
20 Oct 2013 14:25 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А проверь! У меня такой необходимости не было, поэтому и не могу дать ответ...
А символы из bmp-картинки разве будут масштабируемыми и векторными?
PS. Собственно, на ХТ - "Искре-1030" с её 4.77 Мгц я видимых тормозов с этими шрифтами не замечал, там, где я их использовал. А что было бы при эмуляции "Специалиста" - сказать трудно.
_________________ iLavr
|
20 Oct 2013 16:51 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Речь уже пошла об оптимизации работы со шрифтами, а сабж о другом.
_________________Vasil Ivanov vasil-i@yandex.ru
|
22 Oct 2013 01:33 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
По первому вопросу - я сейчас занимаюсь несколько другим. И для проверки вывода bmp-шрифтов нужен подопытный комп, чего у меня пока нет.
По второму вопросу ты и сам знаешь ответ - нет и нет.
_________________Vasil Ivanov vasil-i@yandex.ru
|
22 Oct 2013 01:39 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да вот и я тоже. Просто вспомнился этот артефакт в связи с векторными шрифтами...
_________________ iLavr
|
22 Oct 2013 10:35 |
|
|