Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Шрифты для маленьких экранов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК
Страницы: 1, 2
Barcooler
В результате экспериментов с различными экранами возник вопрос, какой/какие шрифты лучше использовать для экранов с маленьким разрешением.
Например имея экран 48x84 можем использовать шрифты высотой 8 точек - 6 строк, 16 точек - 3 строки и 24 точки - две строки (при ширине символа 16 точек уместится только 5 символов).
Потыкавшись и преобразовав несколько типовых шрифтов из операционки (Arial, Times New Roman, Verdana и пр.) понял что не так просто получить удобоваримый шрифт для LCD дисплея.
Конечно для экрана разрешением >120 точек эта проблема не так актуальна, но даже в таком случае логичнее использовать полезное пространство экрана для других целей, нежели вывод красивых больших букв, которых в любом случае поместится меньше.

Интересует опыт использования шрифтов, и может полезные советы.
x736C
Здравствуйте!

Гуглите dot matrix font.
Barcooler
Цитата(x736C @ May 28 2017, 21:16) *
Здравствуйте!
Гуглите dot matrix font.

Гугл оп такому запросу выдаёт редчайшую дичь - закос под точечный шрифт.
Беда в том, что конвертировать такие шрифты в код совсем не получается нормально, т.к. у них символ состоит из кучи белых и чёрных точек.
Получается вот такая лабуда:
Скрин конвертора
И это при размере шрифта 16, при меньшем размере просто получа.тся нечитаемые символы.
scifi
Вот тут посмотрите.
x736C
Гугл выдает целую массу точечных шрифтов на любой вкус, размер которых тоже варьируется.
Естественно, автоматом их без специального парсера не конвертируешь. Но он пишется за пару часов на питоне или в матлабе. Или на чем удобно.
На мой взгляд, хорошо сделать шрифт малого разрешения (так назовем) можно только вручную.
Либо взять готовый. На форуме такие темы поднимались и вроде как даже выкладывались какие-то шрифты.

А досовские олдскульные шрифты вас не устраивают?
Barcooler
Цитата(x736C @ May 28 2017, 22:51) *
Гугл выдает целую массу точечных шрифтов на любой вкус, размер которых тоже варьируется.
Естественно, автоматом их без специального парсера не конвертируешь. Но он пишется за пару часов на питоне или в матлабе. Или на чем удобно.
На мой взгляд, хорошо сделать шрифт малого разрешения (так назовем) можно только вручную.
Либо взять готовый. На форуме такие темы поднимались и вроде как даже выкладывались какие-то шрифты.

А досовские олдскульные шрифты вас не устраивают?

Если-бы знать, как их можно использовать.
Теоретически наверно они-бы подошли.
Вручную да можно, но надо какую-то базу иметь от чего отталкиваться.
Я по этому и спросить здесь, что наверняка народ уже сталкивался. На тех-же ардуинах и много чём такие экраны используют.
Ну и хотелось сделать что-то скажем так, что радовало глаз.
x736C
Цитата(scifi @ May 28 2017, 22:44) *
Вот тут посмотрите.

Спасибо. Хорошая ссылка, в закладки.
Barcooler
Цитата(scifi @ May 28 2017, 22:44) *
Вот тут посмотрите.

Да полезная ссылочка. Спасибо!
ltDrakon
SG Bitmap Font Editor - вот такой программкой себе делал, все отлично ( из обычных шрифтов - в бинарник )
AlexandrY
Цитата(Barcooler @ May 28 2017, 20:16) *
Интересует опыт использования шрифтов, и может полезные советы.

Graphics Services в Embedded расширении Altium-а содержит с десяток адаптированных фонтов и еще генератор для них.

Еще специально для часов с маленькими экранами есть проект HEXIWEAR в котором вот такие фонты: https://github.com/Indemsys/HEXIWEAR/blob/m...gui_resources.c
Obam
Есть у меня ощущение, что на 48*84 дисплей (ну маленький он), шрифт как таковой не нужен, а будет достаточно "битмапчиков" с текстом и может быть даже, то что, хотелось написать, будет круче заменить пиктограммками.
Barcooler
Цитата(Obam @ May 29 2017, 11:23) *
Есть у меня ощущение, что на 48*84 дисплей (ну маленький он), шрифт как таковой не нужен, а будет достаточно "битмапчиков" с текстом и может быть даже, то что, хотелось написать, будет круче заменить пиктограммками.

Ну на самом деле шрифтом 5x8 вполне себе текст помещается, да и пункты меню можно нормально отобразить.
Да и подписи к выводимым данным неплохо смотрятся.
Да конечно в шрифте в 16 точек по вертикали символов помещается немного, но те-же цифры надо как-то отображать, если не текст.
Но и размерность неплохо указать.
Как-то же в нокиях пользовались и меню и даже кириллица там нормально была реализована.
Так что не совсем соглашусь.
Просто хотелось для себя сделать некую заготовку с парой -тройкой разных шрифтов и в дальнейшем просто использовать их вне зависимости от конкретного экрана.

Цитата(AlexandrY @ May 29 2017, 08:21) *
Graphics Services в Embedded расширении Altium-а содержит с десяток адаптированных фонтов и еще генератор для них.

Еще специально для часов с маленькими экранами есть проект HEXIWEAR в котором вот такие фонты: https://github.com/Indemsys/HEXIWEAR/blob/m...gui_resources.c

Спасибо за информацию, оч интересный проектик. А на счёт альтиума - поковыряюсь.

Цитата(ltDrakon @ May 29 2017, 00:53) *
SG Bitmap Font Editor - вот такой программкой себе делал, все отлично ( из обычных шрифтов - в бинарник )

Вопрос в том, какие именно шрифты и какого размера (кегля) конвертировать. Понятно что можно любой шрифт взять. Но большинство шрифтов нормально конвертятся (не в бинарник правда а в шестнадцатиричный код для программы) только начиная с размера 16 и больше. Ниже получаются кривизна на кривизне или просто смотрится убого.
Obam
Ну, 5*8 рисуется Paint-ом в обеденный перерыв… (;
У вас видеопамять дисплея адресуется точка-в-точку или по-байтово?
jcxz
Для LCD 101х64 я использовал для преобразования шрифтов прогу TheDotFactory. Шрифты брал растровые из винды, а также скачивал. Разные размером от 11 и меньше - вполне нормально смотрятся.

Цитата(Barcooler @ May 29 2017, 10:45) *
только начиная с размера 16 и больше. Ниже получаются кривизна на кривизне или просто смотрится убого.

Вам тут уже несколько раз посоветовали - не используйте векторные шрифты!. Используйте растровые и будет всё ок.
Barcooler
Цитата(Obam @ May 29 2017, 11:49) *
Ну, 5*8 рисуется Paint-ом в обеденный перерыв… (;
У вас видеопамять дисплея адресуется точка-в-точку или по-байтово?

Побайтово. По этому получается что и шрифты кратно 8 имеет смысл только использовать, иначе бессмысленное пустое пространство остаётся.
Ну либо надо мудрить чтобы отрисовать например 10 или 12 шрифт, чтобы не затереть, что уже на той-же строке отрисовано в верхней/нижней части. То есть каким-то образом считывать состояние регистров видео памяти прежде чем писать.
Ну и плюс сама отрисовка тоже будет не тривиальной, т.к. например в первой строке придётся отрисовывать сверху, а во второй уже с середины строки. В общем это уже гораздо сложнее, по этому такие способы особо и не применяются.


Цитата(jcxz @ May 29 2017, 11:57) *
Для LCD 101х64 я использовал для преобразования шрифтов прогу TheDotFactory. Шрифты брал растровые из винды, а также скачивал. Разные размером от 11 и меньше - вполне нормально смотрятся.
Вам тут уже несколько раз посоветовали - не используйте векторные шрифты!. Используйте растровые и будет всё ок.

А как определить, что шрифт растровый? Я видимо в этом вопросе дилетант, но не нашёл признаков растровости в шрифтах операционки (Win).
Obam
"Ну либо надо мудрить"
Не без этого…
Для того и есть команда R-M-W (к примеру у SED1520 или ST7565) и применять маски к считаным данным.

"А как определить, что шрифт растровый?"
Не заморачивайтесь, как только изображение на дисплее - всё, уже растровое. Берёте программу IrfanView, создаёте новое изображение требуемого размера, Edit->InsertText, вставляете текст любым шрифтом и копируете или сохраняете.
jcxz
Цитата(Barcooler @ May 29 2017, 11:01) *
А как определить, что шрифт растровый? Я видимо в этом вопросе дилетант, но не нашёл признаков растровости в шрифтах операционки (Win).

Очевидно - запустить любую программу для работы со шрифтами, она и покажет.
ltDrakon
Цитата(Barcooler @ May 29 2017, 11:45) *
Вопрос в том, какие именно шрифты и какого размера (кегля) конвертировать. Понятно что можно любой шрифт взять. Но большинство шрифтов нормально конвертятся (не в бинарник правда а в шестнадцатиричный код для программы) только начиная с размера 16 и больше. Ниже получаются кривизна на кривизне или просто смотрится убого.


или мы о разном ..

но именно под экраны вашего размера я и использовал, шрифты программа берет прям из ОСи ( у меня линукс ) - и шрифт 8х5 получился нормально, у меня нет претензий. ( я его после даже увеличивал уже програмно до 16, тама уже чутка корявится, но терпимо )
AlexandrY
Цитата(Barcooler @ May 29 2017, 12:01) *
А как определить, что шрифт растровый? Я видимо в этом вопросе дилетант, но не нашёл признаков растровости в шрифтах операционки (Win).

Растровые шрифты уже не модно.
Нынче микроконтроллеры в легкую работают с ttf шрифтами.
Вот первый попавшийся пример GUI которая работает с ttf шрифтами напрямую - https://github.com/embox/nuklear/blob/master/nuklear.h
Да, вся GUI и дефолтные ttf шрифты помещается в одном .h файле!
Barcooler
Цитата(AlexandrY @ May 29 2017, 21:43) *
Растровые шрифты уже не модно.
Нынче микроконтроллеры в легкую работают с ttf шрифтами.
Вот первый попавшийся пример GUI которая работает с ttf шрифтами напрямую - https://github.com/embox/nuklear/blob/master/nuklear.h
Да, вся GUI и дефолтные ttf шрифты помещается в одном .h файле!

Да как-то не логично в те-же часы/термометр/высотомер и проч на простенькой msp430 впихивать такое, да и не уверен, что это в результате будет хоть как-то смотреться на небольшом (небольшого разрешения) экранчике.
Это скорее применимо к каким-то серьёзным проектам, ну или как минимум на контроллерах пожирнее и экранчиках 120х160 как минимум.
AlexandrY
Цитата(Barcooler @ May 29 2017, 22:12) *
на простенькой msp430 впихивать такое, да и не уверен, что это в результате будет хоть как-то смотреться на небольшом (небольшого разрешения) экранчике.

В msp430 очевидно не впихнете. Там только распаковка одного ttf требует 12 кБ стека.

А так я ttf тестировал на маленьких экранах и маленьких процессорах типа STM32
Нажмите для просмотра прикрепленного файла
Так как эти фонты пропорциональные, то они по любому выглядят лучше чем моноширинные.
Barcooler
Цитата(AlexandrY @ May 29 2017, 23:58) *
В msp430 очевидно не впихнете. Там только распаковка одного ttf требует 12 кБ стека.

В любом случае не логично "из пушки по воробьям".
Почему возник собственно сабж - предполагалось наличие изначально готовых шрифтов адаптированных под небольшое разрешение. Ведь в своё время все крутилось на совсем небольших экранчиках и простеньких контроллерах с ограниченным количеством памяти.

На самом деле попедалировав получил что в общем-то можно из того-же Arial конвертнуть шрифт - паример 9 кегля. Приходится правда "дорабатывать напильником" т.к. спецсимволы и буквы с нижними/верхними "выносками" (не знаю правильное название этих элелементов) выходят прилично за пределы 8 точек по высоте.
ViKo
Я руками и головой "нарисовал" шрифт в матрице 10 х 8 (большинство символов занимают зону 8 х 5 точек, 2 точки вниз - для хвостов, как в 'р', точка вправо - для 'щ'). Сразу в h-файле, используя макро двоичной и четверичной кодировки. Ошибок было очень мало. Потом на экране проверил, скорректировал. Да, перед этим в тетради в клетку прикинул (тетрадь и карандаш - мои основные инструменты, наравне с клавиатурой и мышью).
В пропорциональный превращаю шрифт при выводе на экран, оставляя между столбцами пикселей, которые используются в символах, по 2 пустых столбца. Меня устраивает, а остальные понятия не имеют, как и что там сделано, воспринимают, как само разумеющееся.
AlexandrY
Цитата(Barcooler @ May 30 2017, 00:24) *
В любом случае не логично "из пушки по воробьям".

Клиентам не надо "логично", надо быстро и качественно.
Вот еще лет 10 назад сделано на ucGUI:
Нажмите для просмотра прикрепленного файла
И никто не спрашивал зачем тут аж целый uсGUI.
Obam
Любезный ТС, за то время, что мы тут надавали советов, вы, как честный человек, должны были бы уже нарисовать свой шрифт (: Покажете? (:

Цитата(AlexandrY)
Вот еще лет 10 назад сделано на ucGUI

48*84. Это в чем-то даже хуже неудобоваримее чем 122*32.
Barcooler
Цитата(AlexandrY @ May 30 2017, 08:26) *
Клиентам не надо "логично", надо быстро и качественно.
Вот еще лет 10 назад сделано на ucGUI:
Нажмите для просмотра прикрепленного файла
И никто не спрашивал зачем тут аж целый uсGUI.

Ну во первых я всё пока делаю исключительно для себя в качестве некого хобби. И да я пока дилетант во многих вопросах, по этому для меня ещё много вопросов. Ну и msp430 как-то кажется для простых задач более чем хватает, плюс наличие режимов микропотребления для батарейных устройств актуально.

Кстати, что за экранчик такой симпатичный?

Цитата(Obam @ May 30 2017, 11:20) *
Любезный ТС, за то время, что мы тут надавали советов, вы, как честный человек, должны были бы уже нарисовать свой шрифт (: Покажете? (:
48*84. Это в чем-то даже хуже неудобоваримее чем 122*32.

Покажу - без проблем. Только пока я толком не определился какой всё-таки шрифт использовать.
Кстати, обратил внимание, что весьма неплохо смотрится шрифт, которым вводится текст здесь в редакторе сообщений.

Ну и вспомнив молодость выкопал из закромов некогда любимую Nokia 3310 - посмотреть таки на "интерфейс".
Шрифт там в общем-то вполне читабельный. Можно заморочиться и просто по точками перерисовать.
Нажмите для просмотра прикрепленного файла
jcxz
Цитата(ViKo @ May 30 2017, 06:57) *
В пропорциональный превращаю шрифт при выводе на экран, оставляя между столбцами пикселей, которые используются в символах, по 2 пустых столбца. Меня устраивает, а остальные понятия не имеют, как и что там сделано, воспринимают, как само разумеющееся.

Гораздо полезнее это время рисования потратить на написание утилиты конвертирования шрифта из стандартного формата в свой. И получить сразу вагон шрифтов на выбор. Ведь у нас тут вроде не форум дизайнеров.
Был у меня товарищ на прошлой работе. Тоже, вместо конвертирования готовых шрифтов, сколхозил свой шрифт. Потом понадобились разные шрифты для разных мест меню - ещё несколько давай рисовать. Потом для них понадобились жирные варианты. rolleyes.gif Потом схемотехникам потребовалось поменять LCD на другой - ему пришлось перерисовывать все свои шрифты. crying.gif Потом заказчику что-то не понравилось - опять переделывал rolleyes.gif Потом партию устройств купили казахи (с условием наличия казахского языка) - опять он их перерисовывал biggrin.gif biggrin.gif biggrin.gif
Вобщем он эти шрифты много раз перерисовывал и что-то корректировал по разным причинам, занимался почти только этим месяца 2 (вместо программирования), по вечерам оставался. В результате, когда он уволился, я удалил весь этот колхоз, написал конвертер и просто попросил заказчиков указать какие шрифты из готовых им нравятся. И всё.
Хотя ведь ещё в самом начале я ему советовал не заниматься ерундой и подобрать (или написать) конвертер.
Baser
Цитата(AlexandrY @ May 29 2017, 23:58) *
А так я ttf тестировал на маленьких экранах и маленьких процессорах типа STM32

Ваши советы для ТС ну очень на будущее, больше похожи на саморекламу.
Вы же прекрасно понимаете, что ttf шрифты нормально будут выглядеть только на экранах большого разрешения.
Даже на разрешениях около 128 х 128 без антиалиасинга они будут выглядеть ужасно.
На монохроме малого разрешения у фонтов нужно каждую точку ставить на свое место.
Частенько изменил одну точку - все, символ стал уродливым.

Цитата(ViKo @ May 30 2017, 07:57) *
Я руками и головой "нарисовал" шрифт в матрице 10 х 8 ....
(тетрадь и карандаш - мои основные инструменты, наравне с клавиатурой и мышью).

Делать фонты в ручную это мазохизм.
Я взял старенький IconEdit.4.3.90 - его найти не проблема - понравился тем, что в нем есть все для редактирования фонтов.
(Не без глюков, но пользовать можно)
Плюс есть вывод фонта в бинарный файл с описанным форматом.
Плюс есть исходники консольной программы на Си для компа для конвертирования этого бинарного файла в текст программы на Си.

То есть порядок действий:
- берешь любой фонт из окон, втягиваешь в редактор
- редактируешь попиксельно
- сохраняешь в бинарном формате
- правишь консольную программку для конвертации бин.файла в тот формат хранения фонтов, что применяешь в своем коде.
- конвертируешь бин, получаешь файлы *.c и *.h - подключаешь их к своему проекту

Первый раз времени уходит много, зато потом генерация нового фонта проходит быстро.
Barcooler
Я уже писал, что программист из меня в общем-то начинающий и написать конвертер для компа я не способен.
Для конверсии в сишный код я конкретно использую готовую специально предназначенную программулину - GLCD Font Creator.
Она особо не обновляется уже давно и на 7 вин работает нормально только в режиме совместимости с WinXP, но вполне функциональна для своих задач. Шрифт конвертит в код вполне пригодный для использования в программе, единственное - я пока не особо сообразил как использовать ширину символа, по этому просто выкидываю данные о ширине и считаю все символы моноширинными.

p.s. кто может подсказать, как посмотреть шрифт, который используется по умолчанию в форме ввода текста здесь на форуме?
Имеется в виду именно тот шрифт который выделен на скрине рамочкой.
Нажмите для просмотра прикрепленного файла

upd. и как я сразу не догадался - Verdana и Tahoma - попробовал конвертить 8 размер - отлично получается, вполне читабельный. немного постаравшить можно впихнуть в 8 бит (изначально за счёт верхних и нижних чёрточек получается 10). Конвертировал криллицу.
ViKo
Цитата(jcxz @ May 30 2017, 12:20) *
Гораздо полезнее это время рисования потратить на написание утилиты конвертирования шрифта из стандартного формата в свой.

Вот Baser ответил, что при малом разрешении каждый пиксель надо ставить на свое место вручную.
Программы конвертеров я отфутболил, не заглядывая в них. Еще сайты есть, где конвертируют шрифты. Туда же и их.
Программу рисования шрифта по точкам подходящую я не нашел, правда, не сильно искал.
Я еще попытался сделать субпиксельное сглаживание. Вот пример символа.
Код
// 0x41 A
  QUAD(00130000),
  QUAD(01313000),
  QUAD(03001200),
  QUAD(12000300),
  QUAD(12000300),
  QUAD(13333300),
  QUAD(12000300),
  QUAD(12000300),
  QUAD(00000000),
  QUAD(00000000),

Есть идея, как сделать еще лучше сглаживание. В следующем проекте.
Никакая программа мне не поможет. Сам!
Выбрав шаблон, символы рисуются легко, один за другим. Скопировал "пустой" набор, и редактируй потом нужные цифры в текстовом редакторе режиме замены. Что мышкой точки рисовать, что в редакторе цифры плюхать - невеликая разница.
Да, и символы у меня есть не только стандартные, но и свои, стрелочки всякие и т.п.
Шаманъ
Цитата(ViKo @ May 30 2017, 13:07) *
Программу рисования шрифта по точкам подходящую я не нашел, правда, не сильно искал.

Самой удобной "программой" для рисования шрифтов для маленьких экранов для меня оказался встроенный графический редактор MS Visual Studio.
Barcooler
Цитата(ViKo @ May 30 2017, 13:07) *
Вот Baser ответил, что при малом разрешении каждый пиксель надо ставить на свое место вручную.
Программы конвертеров я отфутболил, не заглядывая в них. Еще сайты есть, где конвертируют шрифты. Туда же и их.
Программу рисования шрифта по точкам подходящую я не нашел, правда, не сильно искал.
Я еще попытался сделать субпиксельное сглаживание. Вот пример символа.
Код
// 0x41 A
  QUAD(00130000),
  QUAD(01313000),
  QUAD(03001200),
  QUAD(12000300),
  QUAD(12000300),
  QUAD(13333300),
  QUAD(12000300),
  QUAD(12000300),
  QUAD(00000000),
  QUAD(00000000),

Есть идея, как сделать еще лучше сглаживание. В следующем проекте.
Никакая программа мне не поможет. Сам!
Выбрав шаблон, символы рисуются легко, один за другим. Скопировал "пустой" набор, и редактируй потом нужные цифры в редакторе режиме замены. Что мышкой точки рисовать, что в редакторе цифры плюхать - невеликая разница.
Да, и символы у меня есть не только стандартные, но и свои, стрелочки всякие и т.п.

На счёт сглаживания - никогда не понимал его и любовь к нему.
Дико бесило когда в винде начали его по умолчанию впихивать.
И уж совсем выморозило, когда MS выпилил из ie возможность отключить сглаживание.
По мне, так сглаживание это костыль, предназначенный устранить недостатки "кривизны" самих шрифтов или их отрисовки.
Если не ошибаюсь ещё сам Джобс в своё время ключевое значение уделил разработке шрифтов для интерейса маков. И именно благодаря наличию оных интерфейс стал весьма популярен в своё время.
Лично я во всех операционках его принудительно отключаю.
ViKo
Цитата(Barcooler @ May 30 2017, 14:31) *
На счёт сглаживания - никогда не понимал его и любовь к нему.
Дико бесило когда в винде начали его по умолчанию впихивать.
...
Лично я во всех операционках его принудительно отключаю.

Я всегда использую, очень нравится.
То, что я попытался сделать, далеко от того, что используется в компьютерах. Там яркость изменяется, а у меня только смещаются субпиксели: вместо
___RGB___
могу использовать
__BRG____
или
____GBR__
Дает более плавные линии.
scifi
Цитата(Barcooler @ May 30 2017, 12:57) *
Я уже писал, что программист из меня в общем-то начинающий и написать конвертер для компа я не способен.

И не планируете менять такое положение дел? Если всё-таки планируете, почему бы не начать сейчас?

Цитата(Barcooler @ May 30 2017, 14:31) *
На счёт сглаживания - никогда не понимал его и любовь к нему.

Ну, не знаю. Я когда добавил сглаживание, стало выглядеть гораздо лучше на мой вкус. И это только градации яркости, а если сделать сглаживание с RGB, будет ещё лучше.
AlexandrY
Цитата(Baser @ May 30 2017, 12:41) *
Вы же прекрасно понимаете, что ttf шрифты нормально будут выглядеть только на экранах большого разрешения.
Даже на разрешениях около 128 х 128 без антиалиасинга они будут выглядеть ужасно.

Я понимаю только, что это ваш конвертер делает уродливо.
За остальное, я так понимаю, вы говорить не можете поскольку не пробовали.

С ttf движком всякие конвертеры в бинарники можно забыть как дурной сон.
Именно это самодельщику энтузиасту и надо. Ему ж не замучиться надо, а получить результат максимально быстро и комфортно.
В этом смысле худший выбор чем MSP430 трудно придумать.
Нынче проектирую универсальный модуль для малоразмерных LCD/OLED дисплеев на Kinetis MKS22.
Думаю делать распаковку ttf в SPI Flash.
И да, это реклама. biggrin.gif
Проект будет открытым.
Barcooler
Цитата(AlexandrY @ May 30 2017, 16:19) *
С ttf движком всякие конвертеры в бинарники можно забыть как дурной сон.
Именно это самодельщику энтузиасту и надо. Ему ж не замучиться надо, а получить результат максимально быстро и комфортно.
В этом смысле худший выбор чем MSP430 трудно придумать.

Ну незнаю, меня как-то принципиально воротит от всякого рода ардуин и им подобных.
Терпеть не могу когда не понимаю как что-то работает, если сам что-то делаю.
В своё время АВР-ки программировал на ассемблере, но далеко дело не зашло.
С МСП по мне так в общем-то всё просто достаточно. В общем-то зачастую можно взять код (если не очень сложный) для STM или тех-же AVR и поразбиравшить адаптировать под свои задачи, благо примеров много.
Да и с точки зрения хобби как-то когда разберёшься оно потом проще всё делается.
Но это от темы мы удаляемся уже.
AlexandrY
Цитата(Barcooler @ May 30 2017, 17:03) *
Но это от темы мы удаляемся уже.

А как вышло что подсели на MSP430? Просто интересно чем маркетологи TI вас зацепили.
Тему же сами завели в тупик. Теперь предлагаете всем думать что же может уместиться в ваш MSP.
Дальше как всегда начнется , что не любой MSP, а только тот у которого корпус LQFP и меньше 100 ног.
Не вы ж тут первый такой энтузиаст.
Barcooler
Цитата(AlexandrY @ May 30 2017, 17:28) *
А как вышло что подсели на MSP430? Просто интересно чем маркетологи TI вас зацепили.
Тему же сами завели в тупик. Теперь предлагаете всем думать что же может уместиться в ваш MSP.
Дальше как всегда начнется , что не любой MSP, а только тот у которого корпус LQFP и меньше 100 ног.
Не вы ж тут первый такой энтузиаст.

Да не, всё достаточно тривиально - в моём распоряжении они просто когда-то на халяву оказались. И есть и теперь.
Плюс для меня очень удобные платки отладки, плюс мож тривиально но "богатая периферия". Ну и набор режимов пониженного энергопотребления что позволяиет делать устройства на батарейках не думая, что её хватит на пару дней.
А на счёт не любой - да фиг знает, по моим задачам наверно хватит практически любого самого начального уровня. Правда учитывая то, что в китае можно купить G2553 за 60 рублей, наверное это самый приемлемый вариант. Проще в китае и на ебее дешевле не найдёшь, а у наших продавцов они существенно дороже.
На счёт того, что завёл в тупик - да немного потерял нить но выводы в общем-то для себя определённые сделал.
Результаты впоследствии готов выложить здесь, если это конечно кому-то интересно.
AHTOXA
Цитата(AlexandrY @ May 30 2017, 18:19) *
С ttf движком всякие конвертеры в бинарники можно забыть как дурной сон.

Александр, расскажите пожалуйста поподробнее, откуда вы брали модуль работы с ttf, и сколько он требует ОЗУ/ПЗУ.

Сейчас моё мнение такое: конечно заманчиво иметь в микроконтроллере масштабируемый шрифт, но многовато накладных, да и необходимости особой нет (обычно нужно пару размеров шрифта, а для этого вполне достаточно конвертированных заранее вариантов). Но буду рад, если вы меня переубедите.
x736C
Цитата(Barcooler @ May 30 2017, 14:31) *
На счёт сглаживания - никогда не понимал его и любовь к нему.
Дико бесило когда в винде начали его по умолчанию впихивать.
И уж совсем выморозило, когда MS выпилил из ie возможность отключить сглаживание.
По мне, так сглаживание это костыль, предназначенный устранить недостатки "кривизны" самих шрифтов или их отрисовки.

Без него зачастую откровенная какашка получается (см. пример), особенно если шрифт нарисован не «вручную». То есть без проверки, что все пиксели на своих местах.
Нажмите для просмотра прикрепленного файла
Надо рассматривать в полном разрешении. Глазами это все прекрасно видно и бросается в глаза (в мои во всяком случае).
Если бы делал, например, mp3-плеер с маленьким OLED-дисплеем, то рисовал бы шрифты вручную. А лучше, чтобы это делал дизайнер, как в Эппл, которую упомянули.

Для пользовательского интерфейса посерьезнее, без особых проблем с энергопотреблением, можно и с помощью фреймворка, как предпочитает ув. AlexandrY.
Это, видимо, правильный подход. Интересно будет посмотреть хорошо сфотографированный результат в нормальном фокусе. Особенно для маленьких шрифтов.
Либо конвертер, как делал ув. jcxz.

ViKo, если это возможно, хотелось бы увидеть Ваше сглаживание на каком-нибудь примере. Тема, действительно, очень интересна.

Еще хотел снять свою автомагнитолу. Такой ужасный шрифт с отрисовкой. Второпях стали делать не очень красивые вещи.

AHTOXA, если правильно понял, то речь идет об этом https://www.micrium.com/rtos/gui/
На страничке указаны требуемые ресурсы. И не сказать, что уж какие-то огромные.
AlexandrY
Цитата(AHTOXA @ May 30 2017, 20:14) *
Александр, расскажите пожалуйста поподробнее, откуда вы брали модуль работы с ttf, и сколько он требует ОЗУ/ПЗУ.

Этот модуль часть проекта https://www.freetype.org/
Он не поставляется с ucGUI, его надо самому портировать.
Параметры на память не помню, а чтоб вспомнить надо поднимать старую платформу.
Вот сделаю на новой и все выложу.

ViKo
Цитата(x736C @ May 30 2017, 21:31) *
ViKo, если это возможно, хотелось бы увидеть Ваше сглаживание на каком-нибудь примере. Тема, действительно, очень интересна.

В июне буду программировать-настраивать партию приборов, сфотографирую, покажу. Сейчас макет разобран, а свободного времени мало. Через недели две смогу собрать.
jcxz
Цитата(Barcooler @ May 30 2017, 13:31) *
По мне, так сглаживание это костыль, предназначенный устранить недостатки "кривизны" самих шрифтов или их отрисовки

Ну если это и костыль, то костыль для ограниченного разрешения экрана - чтобы сгладить искажения картинки, вызванные её растеризацией. Вот когда появятся устройства отображения с бесконечным разрешением, вот тогда сглаживание не будет нужно. А пока оно позволяет как бы визуально увеличить разрешение картинки.
И сглаживание никакого отношения не имеет к некоей мнимой "кривизне" шрифтов.

Цитата(ViKo @ May 30 2017, 12:07) *
Программы конвертеров я отфутболил, не заглядывая в них. Еще сайты есть, где конвертируют шрифты.

Это удивительно, но описанный выше мой коллега-рисовальщик шрифтов тоже в конторе имел ник viko! biggrin.gif
Barcooler
Цитата(jcxz @ May 30 2017, 23:20) *
Ну если это и костыль, то костыль для ограниченного разрешения экрана - чтобы сгладить искажения картинки, вызванные её растеризацией. Вот когда появятся устройства отображения с бесконечным разрешением, вот тогда сглаживание не будет нужно. А пока оно позволяет как бы визуально увеличить разрешение картинки.
И сглаживание никакого отношения не имеет к некоей мнимой "кривизне" шрифтов.

Сглаживание, на то и сглаживание, что по сути обманывает зрение (или восприятие глазом) и не искажения убрать.
Шрифты как-бы изначально были растровыми по определению. И как ни странно сглаживание применяется независимо от типа шрифта.
По сути использовается некое замыливание краёв для более плавного перехода тонов (или цвета текста в цвет фона).
На счёт бесконечности разрешения экрана - у упоминаемого мной Эппла было (наверно и сейчас есть) определение для как раз этого случая - Retina, что привязано к разрешающей способности глаза.
То есть грубо при плотности скажем > 300 dpi с расстояния в 30 см, человеческий глаз не способен различить точки.
А такое разрешение во многих мобильниках уже давно превышается и прилично. По этому никакого смысла на таких экранах не имеет использовать пресловутое сглаживание. Надо просто иметь хорошие шрифты ну и ПО, которое их правильно отображает.
Лично у меня сглаживание как правило вызывает ощущение "мутности картинки".
И ещё, хочу отметить, что сглаживание появилось гораздо позднее того времени, когда активно использовались небольшие экраны. И появилось оно именно применитьльно к относительно большим - компьютерным экранам.
По мне так это в первую очередь маркетинговый ход, ну или если хотите некий виток развития графических интерфейсов, но не более того.
Ну да ладно, это всё лирика.
Baser
Цитата(AlexandrY @ May 30 2017, 16:19) *
Я понимаю только, что это ваш конвертер делает уродливо.
За остальное, я так понимаю, вы говорить не можете поскольку не пробовали.

С ttf движком всякие конвертеры в бинарники можно забыть как дурной сон.
Именно это самодельщику энтузиасту и надо. Ему ж не замучиться надо, а получить результат максимально быстро и комфортно.

Пробовал я разные конвертеры и убедился, что природу пока человек обмануть не может и искусственный интеллект у конвертеров никакой.
И опять же - речь идет о монохромных маленьких шрифтах - 10 х 8 и меньше.
При размере 14-16 точек в высоту уже получается приемлемо, если больше - просто хорошо.
А при попытке сделать из ttf шрифт размером 8 х 5 многие символы просто нельзя разобрать: "а что же это такое было".
Так что любая технология имеет свою область применения.

Цитата(x736C @ May 30 2017, 21:31) *
Если бы делал, например, mp3-плеер с маленьким OLED-дисплеем, то рисовал бы шрифты вручную. А лучше, чтобы это делал дизайнер, как в Эппл, которую упомянули.

Для пользовательского интерфейса посерьезнее, без особых проблем с энергопотреблением, можно и с помощью фреймворка, как предпочитает ув. AlexandrY.

Вот именно эту мысль я и пытался донести sm.gif
ViKo
Сейчас пишу со смартфона с разрешением экрана 295 dpi. Не флагман, середнячок, коих много. Шрифты сглаживаются, отчетливо вижу своим невооруженным глазом (близорукость иногда - плюс ;-))
Мне нравился процесс создания шрифта, и результат тоже. И у меня есть возможность сравнить мой шрифт с тем, что сделано в параллельном изделии, видимо, конвертором. Говорю им, шрифт у вас - говно. Молчат... biggrin.gif
Obam
Цитата(ViKo @ May 31 2017, 09:25) *
…с разрешением экрана 295 dpi. Не флагман…

(;

Цитата(Barcooler)
И ещё, хочу отметить, что сглаживание появилось гораздо позднее того времени, когда активно использовались небольшие экраны. И появилось оно именно применитьльно к относительно большим - компьютерным экранам.

Гораздо, гораздо раньше (к примеру "http://publ.lib.ru/ARCHIVES/Z/''Znakomstvo_s_komp'yuterom''/Komp'yuter_obretaet_razum.(1990).[djv-fax].zip" "Компьютер обретает разум" М. «Мир» 1990, а оригинал вообще 1986, т.е. состояние дел до нач. '80-х): цветные маленькие (в т.ч. и по dpi) только у разрабатывались. И "большие компьютерные экраны" (векторные - не трогаем, там всё другое) если дотягивали до 70 dpi, то уже был праздник.
Barcooler
Цитата
И ещё, хочу отметить, что сглаживание появилось гораздо позднее того времени, когда активно использовались небольшие экраны. И появилось оно именно применитьльно к относительно большим - компьютерным экранам.

Поясню, под небольшими экранами я подразумевал как раз небольшое из разрешение - 320x240, 640x480 и не обязательно это цвет.
Опять-же имелось в виду именно т.н. "сглаживание шрифтов" ну или если хотите конкретно у MS "Сглаживание неровностей экранных шрифтов".
Сглаживание изображений было с тех пор как только появилась возможность выводить это самое изображение и была возможность использовать хоть какую-то глубину цветов.
Ну и как бы сама тема топика о шрифтах, по этому не думал, что разговор может уйти в сторону изображений.

Цитата( @ May 31 2017, 10:38) *
Гораздо, гораздо раньше (к примеру "http://publ.lib.ru/ARCHIVES/Z/''Znakomstvo_s_komp'yuterom''/Komp'yuter_obretaet_razum.(1990).[djv-fax].zip" "Компьютер обретает разум" М. «Мир» 1990, а оригинал вообще 1986, т.е. состояние дел до нач. '80-х): цветные маленькие (в т.ч. и по dpi) только у разрабатывались. И "большие компьютерные экраны" (векторные - не трогаем, там всё другое) если дотягивали до 70 dpi, то уже был праздник.

Почитал книгу - в ней написано больше просто про формирование изображение и по сути про саму теорию.
Про шрифты и уж тем более про их сглаживание я не нашёл ни слова.
Кстати за сам документ спасибо вполне интересно.
p.s. мне кажется мы либо немного о разных вещах говорим, либо просто по разному понимаем предмет разговора.
Obam
Цитата
Поясню, под небольшими экранами я подразумевал как раз небольшое из разрешение - 320x240, 640x480 и не обязательно это цвет.

В ч/б (не grayscale) сглаживание не применить ( ЖКМ были с градациями? а, точно были у КПК Tungsten, кто-то помнит?).
Вторую пару уже можно не приводить, да и первая под вопросом (при диагонали, скажем, 2.5" весьма гладко буковки растровые выглядят: в PMP CowonD2 вамолично шрифт перерисовывал) (;

Ну вообще, я хотел сказать: что сглаживание границ в изображении, что в шрифтах (они тоже изображение) - "одна хрен" (; - одна и та же задача.
x736C
Отмечу еще всем и так очевидную вещь, что экран с низким разрешением необязательно маленький экран.
И вручную нарисованный шрифт совершенно необязательно будет красивым. Если это делает не дизайнер, а программист, то высока вероятность, что это будет выглядеть как-то такsm.gif
Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.