Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 28.01.2019, 15:49  
egich92
Частый гость
 
Регистрация: 17.08.2017
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
egich92 на пути к лучшему
По умолчанию Масштабирование шрифта

Доброе время суток.
Хотелось бы узнать, может кто пользовался или знает алгоритмы масштабирования шрифтов на микроконтроллере? Если да, буду очень благодарен ссылкам, коду, идеям и рекомендациям...

Планируется использовать свой, отрисованный шрифт.
Предполагается вывод на экран графики и текста. Но хранить наборы шрифтов разных размеров, считаю нецелесообразным. Хочется попробовать масштабирование...
В дальнейшем буду делать универсальную либу, которую можно будет использовать в разных проектах, с разными дисплеями.

зы при беглом посещении гугла, нашел мало полезного.

Из железа:
CPU: Nios II
Дисплейный модуль: NHD-4.3-480272EF-ASXV-CTP
Контроллер дисплея: ST7282T2
Реклама:
egich92 вне форума  
Непрочитано 28.01.2019, 19:38  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Масштабирование шрифта

egich92, если есть вычислительная мощность, то векторные шрифты решат все проблемы. При необходимости вполне можно хранить нужное во внешней последовательной памяти.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 01.02.2019, 19:03  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 401
Сказали Спасибо 2,212 раз(а) в 1,311 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Масштабирование шрифта

На практике, вам не нужно более трех размеров шрифта. Слишком большое разнообразие шрифтов вызывает некомфортное восприятие информации, особенно когда одновременно отображаются более трех разновидностей шрифтов в пределах одного экрана информации, и особенно на сравнительно небольшом дисплее 480х272 точки.
Один растровый шрифт среднего размера в 24-32 точки высоты и с полным набором символов (лат, русс, цифры, знаки) занимает от 9 до 16 кБ. Крупный (для такого дисплея) шрифт в 64 точки обычно используется только для цифр и некоторого набора знаков в виде + - и десятичных точек. Размер такого шрифта не превышает 8 кБ.
Таким образом, в подавляющем большинстве случаев (для такого дисплея) максимальный объем одного шрифта не превысит 20 кБ. Это под силу даже встроенной флеш-памяти многих микроконтроллеров. Но даже если и нет, то внешняя флеш на скоростном SPI выручит.
Внешняя SPI тут нужна будет еще и потому, что помимо шрифтов приходится хранить и графические растровые объекты. Красивую кнопочку легче перенести готовую, чем программно её отрисовывать.
И вот как раз такие объекты занимают гораздо больше места, чем шрифты. Ибо шрифты хранятся в однобитном упакованном (по 8 пикс в байте) формате, а растровые картинки - 2-3 байта на пиксель, раз в 20 больше.
Работая с графикой, вы скоро поймете, что заморочки с размером шрифтов - эт фигня, мелочь.
Как в практике встраиваемых систем приходится пренебрегать размером в пользу скорости прорисовки, сокращения затрат ресурсов на прорисовку. Внешняя скоростная QSPI флеш на 8-16-32 МБайт решает проблемы с хранением графики.
NewWriter вне форума  
Сказали "Спасибо" NewWriter
mike-y-k (01.02.2019)
Непрочитано 02.02.2019, 02:41  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Масштабирование шрифта

Я ни разу не видел, чтобы растровые шрифты кто-то где-то масштабировал.
Easyrider83 вне форума  
Непрочитано 02.02.2019, 09:18  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 401
Сказали Спасибо 2,212 раз(а) в 1,311 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Масштабирование шрифта

я тоже. Оно того просто не стоит.
NewWriter вне форума  
Непрочитано 02.02.2019, 14:26  
HardWareMan
Частый гость
 
Регистрация: 13.07.2006
Сообщений: 34
Сказал спасибо: 6
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
HardWareMan на пути к лучшему
По умолчанию Re: Масштабирование шрифта

Сообщение от Easyrider83 Посмотреть сообщение
Я ни разу не видел, чтобы растровые шрифты кто-то где-то масштабировал.
Я масштабировал. Правда, не сколько шрифты, сколько графику в целом и на целое число без сглаживаний краёв. 25 лет назад, на Специалисте непосредственно перед выводом на матричный принтер. А на экран этого делать не следует - алиаз будет диким и отсюда красота вся поплывёт. Лучше отрисовать руками красиво под нужное разрешение.
HardWareMan вне форума  
Непрочитано 02.02.2019, 18:24  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 401
Сказали Спасибо 2,212 раз(а) в 1,311 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Масштабирование шрифта

Ну, у топикстартера вообще там весьма экзотическое "железо". Программная эмуляция процессора на ПЛИС Альтера.

Для работы вы можете иметь коллекцию шрифтов разного размера и начертания. Много не надо, 20-30 штук перекроют большинство распространенных потребностей.
Самые ходовые шрифты для такого дисплея будут с высотой строки 16, 24 и 36 точек. Добавим один шрифт высотой 8 точек - для мелких надписей. Ну и еще парочку высотой 48-72 точек - для каких-нибудь крупных индикаторов.
Шрифты высотой более 80 точек для данного размера дисплея используются редко, и в основном только в виде цифр и некоторых знаков.
Таким образом, в одном проекте вы будете использовать от 3 до 6 шрифтов, причем, крупные шрифты будут с ограниченным набором символов. И фактически не будете выходить за рамки 50-100 кБ памяти.

Что касается выбора шрифтов:
Высота шрифта - это не высота символа. Это - высота строки, включающая надстрочные и подстрочные элементы букв. Высота заглавный букв обычно составляет около 2/3 высоты строки. В мелких шрифтах эта высота больше.
Для шрифтов высотой 24 и менее точек особое внимание нужно обращать на читаемость шрифта. Чем проще выглядит шрифт, тем легче он читается в мелком размере. Шрифты типа Times New Roman или другие с засечками - не подходят.
Также, хорошо выглядят пропорциональные шрифты, в которых ширина символа зависит от начертания. В противоположность моноширным шрифтам с одинаковой шириной всех символов.
Пропорциональные шрифты требуют особого способа хранения шрифта - для каждого символа имеется указание на его ширину, и при выводе читается значение ширины символа, и последующий символ сдвинется именно пропорционально ширине.
Выглядит красиво, но не всегда подходит, потому что горизонтальный размер текста будет непостоянен из-за разного содержания текста.
NewWriter вне форума  
Непрочитано 04.02.2019, 10:44  
brawaga
Частый гость
 
Регистрация: 06.01.2011
Сообщений: 33
Сказал спасибо: 33
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
brawaga на пути к лучшему
По умолчанию Re: Масштабирование шрифта

Сообщение от NewWriter Посмотреть сообщение
Оно того просто не стоит.
Я бы поспорил.

Автору вкратце: потребуется более 1 бит на пиксель и специальные алгоритмы для предварительного пре-рендеринга шрифта (из вектора или сильно большего растрового разрешения) в специально закодированный растр, и специальный алгоритм для рендеринга с заданным масштабным коэффициентом. Подробнее здесь: https://gamedev.stackexchange.com/qu...g-it-pixelated.
brawaga вне форума  
Непрочитано 04.02.2019, 21:16  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 401
Сказали Спасибо 2,212 раз(а) в 1,311 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Масштабирование шрифта

Можете конечно поспорить, но... Я уже говорил - толку особого нету во всех этих манипуляциях.
Шрифт со сглаживанием занимает в 8 раз (!) больше места, его вывод более ресурсоёмкий, его сложнее изготавливать. Вобщем, оно того просто не стоит.

Я уже всё описал-расписал. Вот картинка в доказательство: 4 шрифта от 8 до 44 точек высотой занимают чуть больше 18 кБ


Да, топикстартер вообще куда-то пропал...
NewWriter вне форума  
Непрочитано 07.05.2019, 23:59  
p_v
Гражданин KAZUS.RU
 
Регистрация: 07.05.2019
Адрес: СПб
Сообщений: 729
Сказал спасибо: 65
Сказали Спасибо 141 раз(а) в 87 сообщении(ях)
p_v на пути к лучшему
По умолчанию Re: Масштабирование шрифта

Масштабировать можно только векторные. Если ресурсов много, можно из Nuklear выдрать рендерер TTF. Или еще откуда-нибудь, исходников хватает.

Для себя просто сделали нормальный формат растровых шрифтов, со сжатием, кернингом и т.п.

https://github.com/littlevgl/lv_font_conv

Просто берется нормальный фонт, и вытягиваются оттуда нужные глифы. Можно склеить несколько шрифтов, например прицепить иконки.
p_v вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Diptrace - пакет программ для разработки печатных плат alder Proteus, KiCAD и другие ECAD 4552 11.09.2022 18:26
Как увеличить размер шрифта и значков в Windows 7 cherga Электроника - это просто 13 28.04.2017 00:12
EAGLE - как менять размер шрифта группы компоненотв ? avr123-nm-ru Proteus, KiCAD и другие ECAD 1 03.02.2009 20:02


Часовой пояс GMT +4, время: 13:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot