Библиотека для создания растровых шрифтов Adafruit GFX шрифты

Кастотиу
Солнце 10 декабря 2017 г. 9:23
Я работаю над проектом, где мне нужно отобразить часы на матрице RGB, и мне нужны хорошие шрифты.

Я получил несколько шрифтов растровых карт для библиотеки Adafruit, которые не были тем, что я искал, Adafruit также предоставляет бинарные для преобразования шрифтов Truetype в растровые шрифты, однако производимые шрифты являются некачественным качество Использование интерполяции и анти-альца, чтобы она выглядела хорошо, следовательно, шрифты трансформированы в монохроматическую плоскость, а специально маленькие страдают от большой деформации.

Кроме того.

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

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

Формат файлов заголовка вывода .H очень похожи на то, что производится Adafruit, но не совместимы.

Итак, с небольшим дополнительным кодом я добавил опцию для экспорта созданных шрифтов как Adafruit GFX совместимые шрифты также.

Любой шрифт, созданный этим инструментом, также может быть экспортирован как шрифт Adafruit GFX.

Я создал проект на Bitbucket и загрузил источник и двоичные файлы, дайте мне знать любой вопрос, который у вас есть.

Я предоставил два шрифта »DMD8X7Clock.XFT, DMD13x20Clock.xft ", который я создал для отображения времени на дисплее, так что были включены только числа и несколько символов.

Родной формат .XFT (JSON), затем их можно экспортировать из меню «Файл» в шрифт "ESP8266 Adafruit". ".h "файлы

https: // bitbucket.org/castortiu/arduino-font-creator

Стивестронг
Солнце 10 декабря 2017 г. 9:34 утра
Я просто попытался открыть файл XFT, он не будет отображаться в инструменте. Выиграть 10, 64 бит.
Что мне не хватает?
pic1.jpg
Pic1.JPG (54.21 киб) просмотрено 1733 раз

Кастотиу
Солнце 10 декабря 2017 г. 9:35 утра
Я создал на Win10 64 бит Framework 4.6.2
Какое поведение? У тебя есть время выполнения?

Кастотиу
Солнце 10 декабря 2017 г. 9:37 утра
Это должно выглядеть примерно как изображение ниже

Кастотиу
Солнце 10 декабря 2017 г. 9:38 утра
Вы нажали на глиф с набором флажки «Используемый»?

Стивестронг
Солнце 10 декабря 2017 г. 9:39 утра
Ах, я просто ничего не выбрал в левом списке.
Как только я что -то выберет, это будет отображаться.
Так что это работает.
Спасибо.

Кастотиу
Солнце 10 декабря 2017 г. 9:41
Кстати.... Документация будет скоро, эта библиотека была создана для моего собственного использования для того, что мне нужно сейчас, и очень грубая и довольно уродливая, однако решил поделиться ею, чтобы кто -то другой мог использовать его.

Код не самый лучший и не имеет документирования, однако, если есть интерес, я добавлю поддержку/функцию и документацию.

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

Стивестронг
Солнце 10 декабря 2017 г. 9:44
Просто короткий вопрос:
Что такое Advance x?
Advance X кажется всегда (ширина -1). Не может быть автоматизирован всегда до ширины -1 (нет причин для его отображения)?

Кастотиу
Солнце 10 декабря 2017 г. 9:48 утра
Advancex - это сколько пикселей, курсор должен перейти к сразу после визуализации персонажа.

Обычно это число такое же, что и ширина, однако это не может, например, потому, что у моего шрифта есть граница, мне нужно сделать Advacex, равным ширине -1, поэтому два символа будут прилегают только к одному пикселю, а не 2.

Я объясню в следующем посте, что делает каждое значение.

Например, на шрифтах Adafruit это может быть обычно как ширина + 1, поскольку у них нет границ.

Также, например, в случае пространства (32) нет на самом деле ширины, однако курсор все равно должен двигаться правильно.

Кастотиу
Солнце 10 декабря 2017 г. 10:06
Ширина: Это ширина глифа, это значение имеет прямое значение на .h размер с тех пор, как это количество горизонтальных пикселей, которые будут отображаться на экране, пустые пиксели также занимают место.

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

Advancex: Количество пикселей, которые двигатель рендеринга будет двигаться прямо из курсора после того, как глиф отображается на экране, обычно это значение составляет ширину + 1, так как каждый символ должен отображаться друг с другом одним пустым пикселем между ними. Например, значение ширины + 5 оставит 5 пустых пикселей для следующего символа.

Есть случаи, когда это значение должно быть с -1, когда глиф имеет границы (обычно черные), они берут 2 дополнительных пикселя слева/справа от глифа, если ширина по умолчанию + 1 используется для Adancex, то 3 пикселя будут быть между каждым персонажами, поэтому, если мы хотим иметь только один пиксель между ними, то мы должны продвигаться только -1 ширины -1.

Offsetx: Сколько пикселей этот глиф будет смещен влево от курсора во время рендеринга, не влияя на положение курсора, обычно это значение 0

Offsety: Сколько пикселей этот глиф будет смещен в верхнюю часть курсора во время рендеринга, не влияя на положение курсора, обычно это значение составляет 0, однако, например, глифы нижнего случая могут потребовать смещения с позиции курсора. Например, глиф "P" offsety равен 0, однако глиф "P" имеет невозмутимо 2, так как нижняя часть "P" подпадает под линию курсора.

Автоматическая граница: Автоматически добавляйте и удаляйте границу вокруг пикселя каждый раз, когда новые пиксели добавляются/удаляются из глифа (это не используется на шрифтах Adafruit GFX, а границы игнорируются во время экспорта Adafruit)

Слева щелкните: Добавить/переключить пиксель переднего плана или удалить его, если пиксель переднего плана уже был установлен

Щелкните правой кнопкой мыши: Добавить/переключить пограничный пиксель или удалить его, если пограничный пиксель уже был установлен

Мыши-колесо на предварительном просмотре: Увеличьте увеличение предварительного просмотра

Кроме того, я также добавлю «текст предварительного просмотра», так что будет текстовое поле, где пользователь может набрать несколько символов и отобразить предварительный просмотр в реальном времени, который очень поможет определить, правильно ли установлены все атрибуты каждого глифов

Гилхад
Солнце 10 декабря 2017 г. 13:59
Хорошая работа :)