реклама на сайте
подробности

 
 
> Операции с растровыми шрифтами
koluna
сообщение Jun 6 2012, 07:57
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Добрый день!

Имеется растровый шрифт (каждый символ в виде массива, допустим, 20х12 точек).
Необходимо сделать из простого шрифта (тонкого) выделенный (жирный).
Как это лучше сделать?
Есть ли какие-либо стандартные алгоритмы/пути решения?


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Jun 6 2012, 08:13
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Подвигать каждый символ вправо, влево, вверх, вниз.
Потом все сложить.
Если слишком жирно, ограничиться одним сдвигом по горизонтали и вертикали.
Если недостаточно, GOTO 10.

// PS:
Если где совсем некрасиво, доработать по месту напильником sm.gif

Пример:
Прикрепленное изображение


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
koluna
сообщение Jun 18 2012, 10:06
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Цитата(MrYuran @ Jun 6 2012, 12:13) *
Подвигать каждый символ вправо, влево, вверх, вниз.
Потом все сложить.
Если слишком жирно, ограничиться одним сдвигом по горизонтали и вертикали.


Спасибо, попробуем.
Правда, межсимвольный интервал по горизонтали и вертикали наверняка пострадает sad.gif
Кстати, есть какие-нибудь правила оформления растровых шрифтов?

Цитата(Alexey Lukin @ Jun 6 2012, 19:41) *
Достаточно утолщения по горизонтали:
bold_color(x,y) = max{ color(x,y), color(x-1,y) }


А почему достаточно только утолщения по горизонтали?

P.S.: что-то уведомления с форума не приходят sad.gif


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
Alexey Lukin
сообщение Jun 18 2012, 15:22
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000



Цитата(koluna @ Jun 18 2012, 14:06) *
Правда, межсимвольный интервал по горизонтали и вертикали наверняка пострадает sad.gif

Ну естественно, при утолщении надо интервал оставлять тем же самым.

Цитата(koluna @ Jun 18 2012, 14:06) *
А почему достаточно только утолщения по горизонтали?

Иначе получится слишком жирно с вашими матрицами. Но это ещё зависит от шрифта. Попробуйте и так, и так.

Цитата(koluna @ Jun 18 2012, 17:27) *
Как выполнить сглаживание масштабированных символов, чтобы они были без больших углов-перепадов?

Использовать другие матрицы, сгенерированные под нужный размер.
Использовать векторные шрифты.
Использовать алгоритмы масштабирования изображений, адаптирующиеся к направлению границ, например градиентный или NEDI.
Go to the top of the page
 
+Quote Post
koluna
сообщение Jun 21 2012, 07:46
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Цитата(Alexey Lukin @ Jun 18 2012, 19:22) *
Ну естественно, при утолщении надо интервал оставлять тем же самым.


Кстати, как обычно регулируются зазоры между символами шрифта (лево, право, верх, низ)?
С помощью пустых точек (полей) внутри каждого символа (допустим, шрифт 10х12, а символ располагается в середине матрицы и имеет размер 8х10 - зазор по одной точке с каждой стороны) или другим способом?

Цитата
Использовать другие матрицы, сгенерированные под нужный размер.


Т. е, под каждый размер каждого шрифта иметь свой набор символов? Затратно с точки зрения памяти (допоустим, 4 шрифта, увеличение до 8 раз каждого)...

Цитата
Использовать векторные шрифты.


В микроконтроллере? sm.gif

Можете порекомендовать какой-нибудь софт для рисования растровых шрифтов (желательно бесплатный)?


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 08:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01427 секунд с 7
ELECTRONIX ©2004-2016