Шрифты для дисплейчика
Платок с процессором ESP32 много разных, но удобнее всего оказываются те, которые с дисплейчиком. Всегда полезно что-нибудь отобразить, что на светодиодах не помещается: имя сети Wi-Fi, адрес IP, счётчики пересылаемых пакетов и т.п. Я использую плату TTGO LoRa32. Экранчик хоть и маленький, меньше сантиметра в высоту, зато довольно яркий и контрастный. Общий вид:

Исходные коды управления дисплеем можно взять здесь: esp-idf/oled/main
Смотрите файлы oled.c, draw.c и oled.h. В этой же папке лежат исходники шрифтов.
Рисовать точки и линии на дисплее нетрудно. Сложнее выводить текст. Самое нетривиальное - подобрать подходящие шрифты, их внутреннее представление и эффективный алгоритм отрисовки. Я уже давно забавляюсь шрифтами для встроенных систем, так что представление и алгоритм у меня отработанные. А вот со шрифтами всякий раз приходится экспериментировать.
Я сделал пару утилиток, которые позволяют из любого шрифта в формате TrueType (TTF) или OpenType (OTF) сделать растровое представление в виде компактной Си-структуры. Ниже примеры отображения нескольких популярных шрифтов в разных размерах. Кликайте, чтобы разглядеть в увеличенном виде. Лучше всего смотрится Tahoma. Остальные шрифты терпимо выглядят только в некоторых размерах.
Шрифт Tahoma в размерах 8, 10, 12, 14 и 18 пунктов:



Шрифт Lucida Sans, и отдельно цифры из него же:




Шрифт Verdana:



Шрифт Georgia:



Шрифт DejaVu Sans:



Шрифт DejaVu Sans Condensed:



Шрифт FreeSans:



Шрифт Liberation Sans:



Шрифт Liberation Serif:



Шрифт Ubuntu Regular:



Для сравнения, растровые шрифты 5x7 и 6x9, приготовленные из формата BDF:


Исходные коды управления дисплеем можно взять здесь: esp-idf/oled/main
Смотрите файлы oled.c, draw.c и oled.h. В этой же папке лежат исходники шрифтов.
Рисовать точки и линии на дисплее нетрудно. Сложнее выводить текст. Самое нетривиальное - подобрать подходящие шрифты, их внутреннее представление и эффективный алгоритм отрисовки. Я уже давно забавляюсь шрифтами для встроенных систем, так что представление и алгоритм у меня отработанные. А вот со шрифтами всякий раз приходится экспериментировать.
Я сделал пару утилиток, которые позволяют из любого шрифта в формате TrueType (TTF) или OpenType (OTF) сделать растровое представление в виде компактной Си-структуры. Ниже примеры отображения нескольких популярных шрифтов в разных размерах. Кликайте, чтобы разглядеть в увеличенном виде. Лучше всего смотрится Tahoma. Остальные шрифты терпимо выглядят только в некоторых размерах.
Шрифт Tahoma в размерах 8, 10, 12, 14 и 18 пунктов:



Шрифт Lucida Sans, и отдельно цифры из него же:




Шрифт Verdana:



Шрифт Georgia:



Шрифт DejaVu Sans:



Шрифт DejaVu Sans Condensed:



Шрифт FreeSans:



Шрифт Liberation Sans:



Шрифт Liberation Serif:



Шрифт Ubuntu Regular:



Для сравнения, растровые шрифты 5x7 и 6x9, приготовленные из формата BDF:

no subject
no subject
И не уверен, что там utf-8 декодируется в функции oled_text(). Надо доработать.
no subject
no subject
no subject
В малом формате лучше всего читается Axel, но его покупать надо.
no subject
no subject