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

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

Сообщение FantasyDD »

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

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

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

Сообщение DimAlt »

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

Сообщение FantasyDD »

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

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

Сообщение AndyGU70 »

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

Сообщение Reflector »

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

Сообщение FantasyDD »

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

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

Сообщение AndyGU70 »

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

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

Сообщение 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
};
---------------------------
Посмотрел на разных шрифтах, пришел к мнению, что ручная обрезка - это лишнее.
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

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

Сообщение FantasyDD »

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

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

Сообщение Reflector »

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

Сообщение FantasyDD »

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

Сообщение Reflector »

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

Сообщение FantasyDD »

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

Сообщение Reflector »

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

Сообщение 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 КБ) 771 скачивание
----------------
Может быть это пожелание лишние, можно добавить пункт максимальная ширина цифры? У Вас есть пункт Max Width (X pix), но он для меня не очень интересен, а для набора символов 0123456789, я в описании шрифта, указываю макс ширину цифры, что бы иметь возможность выводить их моноширно.
Последний раз редактировалось DimAlt Пт май 17, 2019 12:33:11, всего редактировалось 1 раз.
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 165
Зарегистрирован: Чт фев 19, 2015 17:26:19
Откуда: СССР

Сообщение FantasyDD »

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

Сообщение FantasyDD »

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

Сообщение DimAlt »

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

Сообщение FantasyDD »

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

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