Генератор фонтов для дисплеев CX Font Generator

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

Искал программу для создания шрифтов. Сами шрифты найти можно а вот программы все таки имеют недочеты. Самая подходящая была TheDotFactory с исходным кодом на си.
Решил написать сам. Представляю вашему вниманию. CX Font Generator
Что можем, коротко о важном:
1 ) Все настройки, битмапы, файл внешнего шрифта, сохраняются в файле проэкта .cxfg
2 ) Можно использовать не инсталлированный шрифт.
3 ) Можно грузить образ не только с шрифта но и с любого графического файла
4 ) Простой быстрый графический редактор (можно быстро подправить битмап или экспорт и импорт в любом графическом формате)
5 ) Вставляем текст, программа покажет набор букв этого текста.
6 ) Любая буква с любого шрифта (набор букв с любого набора шрифтов)
7 ) Что важно ПРАВИЛЬНО ровняет и обрезает если надо (Можно обрезать по высоте по ширине, выравнять все буквы под один размер)
8 ) FW (у этого набора одна ширина на всех) и FH (у этого набора одна высота на всех)
9 ) Анализ всего на лету.
и ...........
В закладке Sourse Options (настройки генератора си кода с битмапов) все очень гибко, любые переменные, любой набор в типах.....
и ............

Пара скринов:
Изображение Изображение Изображение

Думаю программа интуитивно понятна. Инсталляция не нужна, все в одном файле.
Если что не понятно пишите, постараюсь ответить. Ну или напишу хелп, ну если понадобится.
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение DimAlt »

Программа классная, но нет возможности выбрать обход байт. У Вас сейчас так - обход байт горизонтально msb, слева на право, сверу вниз?
Можно ли добавить опцию lsb, то есть первым идёт младший бит?
Еще вопрос, можно для всех символов изменить canvas Y?
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

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

1) canvas Y вы имеете в виду высоту изменить у всех букв? (уже сформированных битмапов)
AndyGU70
Прорезались зубы
Сообщения: 231
Зарегистрирован: Ср апр 17, 2019 01:53:29

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение AndyGU70 »

"Abaut","Sourse" и т.д - вы же вроде русский ? зачем этот выпендреж с ошибками на буржуйском ? так из интереса.. :)
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение Reflector »

[uquote="AndyGU70",url="/forum/viewtopic.php?p=3633774#p3633774"]"Abaut","Sourse" и т.д - вы же вроде русский ?[/uquote]
Там еще в *.c файле "ведьма" вместо "ширины" :)
И тормозит, особенно когда неспеша символы добавляет, причем если клацнуть по символу и закрыть открывшееся окно, то почему-то они добавляются заново и еще в этот момент нажатие на некоторые кнопки приводит к access violation.
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

Благодарю найденные ошибки, до завтра обязательно исправлю исправлю!
Выпендрежа нет, просто попытка выдержать стиль. Английский язык, понятнее боле широкой аудитории.
Если что не так пишите исправлю!

Программа работает с потоками (если все это делать в одном потоке, то ждать придется год, ну или отказаться от предварительного анализа), поэтому если большие массивы информации и немного слабый комп, нужно ждать завершения операций. Работать с терпением. По любому она шустрее всех мною найденых подобных программ.
Там еще в *.c файле "ведьма" вместо "ширины" > если можно поподробнее (понято, до завтра исправим)
Последний раз редактировалось FantasyDD Ср май 15, 2019 11:42:11, всего редактировалось 3 раза.
AndyGU70
Прорезались зубы
Сообщения: 231
Зарегистрирован: Ср апр 17, 2019 01:53:29

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение AndyGU70 »

[uquote="FantasyDD",url="/forum/viewtopic.php?p=3633783#p3633783"]Там еще в *.c файле "ведьма" вместо "ширины" > если можно поподробнее[/uquote]

witch != width :)
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение DimAlt »

[uquote="FantasyDD",url="/forum/viewtopic.php?p=3633769#p3633769"]1) canvas Y вы имеете в виду высоту изменить у всех букв? (уже сформированных битмапов)[/uquote] Например, хочу сделать шрифт с переменной шириной и фиксированной выстой, если оставлять fix size FH, то высота символов получается большой. Min for all, не на всех символах получается то, что хочется. Соответственно захотелось вручную обрезать лишние снизу и сверху. Может быть в программе есть возможность выбора, сколько пикселей оставлять по краям от символа (от самого высокого/широкого из набора)?
И что значат эти поля, как ими пользоваться?

Код: Выделить всё

const T_FONT FONT_Arial_Unicode_MS_27 =
{
...
   0, //Indent pix Top
   0, //Indent pix Bottom
   0, //Indent pix Left
   0, //Indent pix Right
};


----------
Посмотрел на разных шрифтах, пришел к мнению, что ручная обрезка - это лишнее.
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

DimAlt

Код: Выделить всё

   0, //Indent pix Top
   0, //Indent pix Bottom
   0, //Indent pix Left
   0, //Indent pix Right


(вычисляется здесь) Tools>Sourse Options>Indent from Bitmap в этой же закладке (Font) можно убрать эти переменные или сдвинуть .
Это отступы от буквы в пикселах (могут вычисляться в процентах в зависимости от максимального размера букв или задаются фиксировано) .
В связи с тем что писать пробелы (отступы от буквы) расточительно (и так места мало), лучше это делать в самом микропроцессоре (в драйвере).
Эти отступы выводятся в //Font information если надо.

Писать пустые отступы от буквы желательно в драйвере, согласитесь?
Ну если они понадобились, это можно легко сделать в ручную на свой вкус.

Через пару дней (Сам немного занят, у меня планируется командировка), будет готова версия 1.2 .
Сейчас считаем с ЛЕВА на ПРАВО с ВЕРХУ в НИЗ. Появиться возможность считать в любую сторону + очипятки.
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

CX Font Generator v1.5
1 ) Исправил очипятки, ошибки. (Спасибо Reflector и AndyGU70)
2 ) (Совет DimAlt, добавлено ) Tools>Sourse Options>Bitmap>Order :
читаем строки с верху вниз
читаем строки с низу верх
читаем байты в строке с лева на права
читаем байты в строке с права на лева
пишем в байт биты с лева на права
пишем в байт биты с право на лева
Проект в котором явно видно как меняют эти настройки код

В Топе первый пост изменить не могу. Если кто подскажет как буду благодарен.
Последний раз редактировалось FantasyDD Пт май 17, 2019 11:27:29, всего редактировалось 9 раз.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение Reflector »

Ошибок в словах полно, я минимум 6 вижу, плюс некоторые предложения безграмотно составлены...
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

Если не трудно, какие, я сейчас же исправлю
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение Reflector »

Ты даже те ошибки про которые писал AndyGU70 не исправил...
Sourse, abaut, standart, simvols, centr, psevdo.
Вместо "No generate..." должно быть "Don't generate...", вместо "Name Font" и похожих выражений должно быть "Font Name". Еще местами множественное число пропущено(Append all char...).
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

Все подправил v1.5
Спасибо Reflector и AndyGU70 за найденные ошибки, DimAlt За совет.
Просто все пишу все в этом сообщении, что бы много не постить.
Последний раз редактировалось FantasyDD Пт май 17, 2019 11:27:46, всего редактировалось 4 раза.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение Reflector »

Simvols в "Character List".
Append all chars.
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение DimAlt »

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

Есть один вопрос, мне надо сгенерировать строку

Код: Выделить всё

static const PROGMEM uint16_t CHAR_Tahoma_16[][2] =
{
}
не получилось добавить вот это "[2]" (CHAR_[FN][2])
получается так:

Код: Выделить всё

static const PROGMEM uint16_t CHAR_Tahoma_17[2][] =
пока написал так

Код: Выделить всё

typedef uint16_t T_CHAR[2];
static const PROGMEM T_CHAR CHAR_Tahoma_16[] =
Попробовал вывести текст в протеусе, для фиксированной высоты, шрифт подобрал по высоте пикселей, сравнивал с TheDotFactory-0.1.4.
тест.png
(20.27 КБ) 765 скачиваний
----------
Может быть это пожелание лишние, можно добавить пункт максимальная ширина цифры? У Вас есть пункт Max Width (X pix), но он для меня не очень интересен, а для набора символов 0123456789, я в описании шрифта, указываю макс ширину цифры, что бы иметь возможность выводить их моноширно.
Последний раз редактировалось DimAlt Пт май 17, 2019 12:33:11, всего редактировалось 1 раз.
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

DimAlt Ночью или с утра (по мск) будет ответ.
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

Через пару дней будет новая версия.
Будет исправлен недочет с переменными, обрезка по Y сохраняя позицию буквы в знакоместе, возможность дописывать отступы к букве.
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение DimAlt »

FantasyDD, в режиме рисования символа, можно на правую кн мышки назначить белый цвет?
Аватара пользователя
FantasyDD
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Re: Генератор фонтов для дисплеев CX Font Generator

Сообщение FantasyDD »

DimAlt Хорошая идея, сделаем.
Ответить

Вернуться в «Периферия»