Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

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

Вс май 12, 2019 08:11:45

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

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

Думаю программа интуитивно понятна. Инсталляция не нужна, все в одном файле.
Если что не понятно пишите, постараюсь ответить. Ну или напишу хелп, ну если понадобится.

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

Ср май 15, 2019 07:37:13

Программа классная, но нет возможности выбрать обход байт. У Вас сейчас так - обход байт горизонтально msb, слева на право, сверу вниз?
Можно ли добавить опцию lsb, то есть первым идёт младший бит?
Еще вопрос, можно для всех символов изменить canvas Y?

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

Ср май 15, 2019 11:13:53

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

1) canvas Y вы имеете в виду высоту изменить у всех букв? (уже сформированных битмапов)

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

Ср май 15, 2019 11:20:32

"Abaut","Sourse" и т.д - вы же вроде русский ? зачем этот выпендреж с ошибками на буржуйском ? так из интереса.. :)

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

Ср май 15, 2019 11:22:18

"Abaut","Sourse" и т.д - вы же вроде русский ?

Там еще в *.c файле "ведьма" вместо "ширины" :)
И тормозит, особенно когда неспеша символы добавляет, причем если клацнуть по символу и закрыть открывшееся окно, то почему-то они добавляются заново и еще в этот момент нажатие на некоторые кнопки приводит к access violation.

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

Ср май 15, 2019 11:27:54

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

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

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

Ср май 15, 2019 11:38:02

Там еще в *.c файле "ведьма" вместо "ширины" > если можно поподробнее


witch != width :)

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

Ср май 15, 2019 12:00:11

1) canvas Y вы имеете в виду высоту изменить у всех букв? (уже сформированных битмапов)
Например, хочу сделать шрифт с переменной шириной и фиксированной выстой, если оставлять 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
};


----------
Посмотрел на разных шрифтах, пришел к мнению, что ручная обрезка - это лишнее.

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

Ср май 15, 2019 21:21:37

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 .
Сейчас считаем с ЛЕВА на ПРАВО с ВЕРХУ в НИЗ. Появиться возможность считать в любую сторону + очипятки.

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

Чт май 16, 2019 23:38:42

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

В Топе первый пост изменить не могу. Если кто подскажет как буду благодарен.
Последний раз редактировалось FantasyDD Пт май 17, 2019 11:27:29, всего редактировалось 9 раз(а).

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

Пт май 17, 2019 00:07:53

Ошибок в словах полно, я минимум 6 вижу, плюс некоторые предложения безграмотно составлены...

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

Пт май 17, 2019 00:10:14

Если не трудно, какие, я сейчас же исправлю

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

Пт май 17, 2019 00:19:56

Ты даже те ошибки про которые писал AndyGU70 не исправил...
Sourse, abaut, standart, simvols, centr, psevdo.
Вместо "No generate..." должно быть "Don't generate...", вместо "Name Font" и похожих выражений должно быть "Font Name". Еще местами множественное число пропущено(Append all char...).

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

Пт май 17, 2019 00:44:56

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

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

Пт май 17, 2019 01:04:59

Simvols в "Character List".
Append all chars.

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

Пт май 17, 2019 12:09:01

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

Есть один вопрос, мне надо сгенерировать строку
Код:
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 KiB) Скачиваний: 687
----------
Может быть это пожелание лишние, можно добавить пункт максимальная ширина цифры? У Вас есть пункт Max Width (X pix), но он для меня не очень интересен, а для набора символов 0123456789, я в описании шрифта, указываю макс ширину цифры, что бы иметь возможность выводить их моноширно.
Последний раз редактировалось DimAlt Пт май 17, 2019 12:33:11, всего редактировалось 1 раз.

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

Пт май 17, 2019 12:22:08

DimAlt Ночью или с утра (по мск) будет ответ.

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

Вс май 19, 2019 09:38:20

Через пару дней будет новая версия.
Будет исправлен недочет с переменными, обрезка по Y сохраняя позицию буквы в знакоместе, возможность дописывать отступы к букве.

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

Вс май 19, 2019 20:25:44

FantasyDD, в режиме рисования символа, можно на правую кн мышки назначить белый цвет?

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

Пн май 20, 2019 10:17:03

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