Генератор фонтов для дисплеев CX Font Generator
Re: Генератор фонтов для дисплеев CX Font Generator
А как эта программа сжимает шрифты?
Re: Генератор фонтов для дисплеев CX Font Generator
Скажите пожалуйста, как в настройках программы задать кодирование колонками байт, (по страницам, удобно для OLED экрана SSD1306). Так, как сделано в The Dot Factory ? В ней эта настройка называется "Bit Layout" -> "ColumnMajor" (Расположение бит -> По столбцам).
Re: Генератор фонтов для дисплеев CX Font Generator
[uquote="FantasyDD",url="/forum/viewtopic.php?p=3631945#p3631945"]Искал программу для создания шрифтов. Сами шрифты найти можно[/uquote]
Извините, а где их найти? Никак не находятся... Мне чтобы в формате С, чтобы самой переделывать под наши нужды.
Извините, а где их найти? Никак не находятся... Мне чтобы в формате С, чтобы самой переделывать под наши нужды.
Re: Генератор фонтов для дисплеев CX Font Generator
Если надо переделывать под свои нужды, то надо не сами шрифты в С формате, а именно программу для их создания.
Байтовые массивы заманаетесь вручную переделывать.
Байтовые массивы заманаетесь вручную переделывать.
Re: Генератор фонтов для дисплеев CX Font Generator
Я не вручную, я прогу написала. Пока у меня два шрифта - на 127 и на 255 символов. Один для наших нужд пришлось транспонировать, второй переворачивать с ног на голову. Так что с этим проблем не будет. Вот где их найти....
Re: Генератор фонтов для дисплеев CX Font Generator
Ужс...
Создать, вестимо! Берёте генератор и в путь. Вам помочь?
А ищется всё на гитхабе. Под ту графическую библиотеку, которую используете. Проекты на них обычно выкладывают вместе со шрифтами.
Или вопрос о шрифтах для операционной системы, ttf, otf?
Создать, вестимо! Берёте генератор и в путь. Вам помочь?
А ищется всё на гитхабе. Под ту графическую библиотеку, которую используете. Проекты на них обычно выкладывают вместе со шрифтами.
Или вопрос о шрифтах для операционной системы, ttf, otf?
Re: Генератор фонтов для дисплеев CX Font Generator
Мы не используем библиотеки, пишем все сами, ручками. Поэтому и шрифты у нас выводятся так, как нам удобно. Мне нужны адекватные шрифты, а уж к нашему формату я сама все приведу. Я тоже не совсем понимаю почему мы сами не можем написать (начальнику виднее) - это вообще не проблема. Этих генераторов полно.
Вот еще вопрос, можно ли ttf растрировать.... Сколько не рылась, найти не смогла как это можно сделать. А может и нельзя...
В стандартных библиотеках какие-то странные шрифты. Обычно шрифт выглядит гораздо проще. Вот, например, я нашла отличный шрифт https://pastebin.com/J9Ya3a68. Ничего лишнего, все предельно понятно. А в готовых библиотеках вообще не понятно по какому принципу шрифты формируют.
Вот еще вопрос, можно ли ttf растрировать.... Сколько не рылась, найти не смогла как это можно сделать. А может и нельзя...
В стандартных библиотеках какие-то странные шрифты. Обычно шрифт выглядит гораздо проще. Вот, например, я нашла отличный шрифт https://pastebin.com/J9Ya3a68. Ничего лишнего, все предельно понятно. А в готовых библиотеках вообще не понятно по какому принципу шрифты формируют.
Re: Генератор фонтов для дисплеев CX Font Generator
а почему нет?Лакшми писал(а):Вот еще вопрос, можно ли ttf растрировать
Если имеется ввиду перевод в растр фиксированного размера, а не использование прям на мк. Вроде бы, программа ТС именно это делает?
Если на мк, то на ARM это тоже было, например в Segger emWin
Генераторами шрифтов тож баловался:
https://kilkennycat.ru/component/maplcdfont.html
https://kilkennycat.ru/component/zoomlcdchar.html
Re: Генератор фонтов для дисплеев CX Font Generator
Можно, конечно. Но на ПК, заранее. На МК это - трата ресурсов, которую надо ещё оправдать.Вот еще вопрос, можно ли ttf растрировать....
Вот, например: https://www.radiokot.ru/forum/viewtopic ... 1#p3506721Сколько не рылась, найти не смогла как это можно сделать. А может и нельзя...
Они оптимизированные. Чтобы меньше памяти занимать. Например, зачем символ точки, буквы i и Ж хранить в одинаковых по размеру массивах 20*30 пикселей? Или зачем хранить все символы от 0x20 до 0xff, если нам нужны только цифры, латиница и наша кириллица?В стандартных библиотеках какие-то странные шрифты.
Если вы ему предложили создать шрифт в том смысле, что нарисовать каждую букву вручную, то он прав. Только вот это не обязательно. Берётся готовый открытый (лицензия) шрифт и из него генерится Cишный файл. В том же генераторе, при необходимости, можно подправить отдельные буквы.Я тоже не совсем понимаю почему мы сами не можем написать (начальнику виднее) - это вообще не проблема.
Не страдайте фигнёй.
Re: Генератор фонтов для дисплеев CX Font Generator
[uquote="Лакшми",url="/forum/viewtopic.php?p=4240728#p4240728"]Вот еще вопрос, можно ли ttf растрировать.... Сколько не рылась, найти не смогла как это можно сделать.[/uquote]Пишете простейшее приложение под Win. Там по буковке выводите в битовую плоскость и сохраняете из неё в каком надо формате в файл. Всё просто.
Re: Генератор фонтов для дисплеев CX Font Generator
Меня тоже крайне интересует тема создания шрифтов, причем желательно по своему шаблону. Пользовался IconEdit и DotFactory. Первая всем хороша, но генерит неудобный и неэкономичный массив для шрифтов разной высоты. Вторая прога генерит удобный массив, но в ней нельзя отредактировать отдельные символы.
Какие еще есть проги для генерации шрифтов?
Какие еще есть проги для генерации шрифтов?
Re: Генератор фонтов для дисплеев CX Font Generator
По своему шаблону - lcd-image-converter
Re: Генератор фонтов для дисплеев CX Font Generator
Спасибо. У меня есть такая прога, только я почемуто ее не использовал. Сейчас буду разбираться. Похоже это то, что нужно. Надо её обследовать детально.
Re: Генератор фонтов для дисплеев CX Font Generator
[uquote="Up2805",url="/forum/viewtopic.php?p=4241006#p4241006"]Меня тоже крайне интересует тема создания шрифтов, причем желательно по своему шаблону. Пользовался IconEdit и DotFactory. Первая всем хороша, но генерит неудобный и неэкономичный массив для шрифтов разной высоты.[/uquote]Шрифты - видимо для какой-то своей программы? Значит Вы - программист. Тогда в чём проблема набросать простой конвертор этого массива в любой удобный формат?
Re: Генератор фонтов для дисплеев CX Font Generator
Да, я программист. Микроконтроллеров. Эмбеддер, если по-русски
А вот как набросать этот ваш простой конвертОр массива вне микроконтроллера, это я не знаю. А вы можете набросать?
И дело не в том чтобы конвертЕр массива набросать, а дело в том, чтобы прога готовила не просто массив пикселей символа шрифта, а делала именно наиболее оптимальным способом.
Например, DotFactory умеет герерить таблицу символов с параметрами символа, а так же общее описание параметров шрифта и карты включенных в шрифт символов. Эта особенность позволяет компактно уместить в память несколько шрифтов разных размеров и разного состава символов и выводить их через единый интерфейс, не парясь отдельным указанием всех параметров символа.
Но в DotFactory нет возможности отредактировать попиксельно символ или нарисовать его. В IconEdit такая возможность есть, но генерируемый формат данных не подходит для компактного хранения шрифтов разных размеров.
Поэтому и ищу прогу, удовлетворяющую моим требованиям. Возможно, это будет lcd-image-converter
И дело не в том чтобы конвертЕр массива набросать, а дело в том, чтобы прога готовила не просто массив пикселей символа шрифта, а делала именно наиболее оптимальным способом.
Например, DotFactory умеет герерить таблицу символов с параметрами символа, а так же общее описание параметров шрифта и карты включенных в шрифт символов. Эта особенность позволяет компактно уместить в память несколько шрифтов разных размеров и разного состава символов и выводить их через единый интерфейс, не парясь отдельным указанием всех параметров символа.
Но в DotFactory нет возможности отредактировать попиксельно символ или нарисовать его. В IconEdit такая возможность есть, но генерируемый формат данных не подходит для компактного хранения шрифтов разных размеров.
Поэтому и ищу прогу, удовлетворяющую моим требованиям. Возможно, это будет lcd-image-converter
Re: Генератор фонтов для дисплеев CX Font Generator
[uquote="Up2805",url="/forum/viewtopic.php?p=4241104#p4241104"]Да, я программист. Микроконтроллеров. Эмбеддер, если по-русски
А вот как набросать этот ваш простой конвертОр массива вне микроконтроллера, это я не знаю. А вы можете набросать?[/uquote]Конечно. Какая разница - МК или ПК? Си он одинаков везде. А написать программу под Win ещё проще, чем для МК.
Но в принципе можно конвертор и на МК сделать, если уж под Win неохота: цепляете bin-образ исходного шрифта (в исходном формате) к образу программы-конвертора на МК; в программе его конвертируете; выводите например через UART наружу например в base64- или uuencode- формате; в терминалке записываете полученный base64- или uuencode- файл и конвертируете его в bin. Всё! Теперь этот bin можно цеплять уже к рабочей программе. Хотя этот способ конечно через одно место, но позволяет даже не ставить компилятор для ПК.
[uquote="Up2805",url="/forum/viewtopic.php?p=4241104#p4241104"]И дело не в том чтобы конвертЕр массива набросать, а дело в том, чтобы прога готовила не просто массив пикселей символа шрифта, а делала именно наиболее оптимальным способом.[/uquote]И что? В чём проблема? Если Вы - программист, пишущий программу на МК, то кому как не Вам лучше всего должно быть известно - как именно наиболее оптимально хранить шрифт в вашей программе. Программа то ведь Ваша! Значит Вам и знать как там лучше его хранить, чтобы удобнее было его использовать в программе.
100500 раз писал всякие конвертеры/пакователи шрифтов для своих прошивок. Потому как - каждый раз, на каждом МК есть свои особенные требования к формату шрифтов - в одной прошивке важнее минимальный размер памяти занимаемый шрифтом, в другой - скорость его вывода, в 3й - шрифт должен быть вертикальным, в 4й - горизонтальным, в 5й - символы удобнее паковать единым битовым потоком, в 6й - строки пикселей не должны пересекать границы байтов и т.п. Ни одна готовая программа не удовлетворяет всем требованиям полностью, во всех чего-то не хватает.
Но в принципе можно конвертор и на МК сделать, если уж под Win неохота: цепляете bin-образ исходного шрифта (в исходном формате) к образу программы-конвертора на МК; в программе его конвертируете; выводите например через UART наружу например в base64- или uuencode- формате; в терминалке записываете полученный base64- или uuencode- файл и конвертируете его в bin. Всё! Теперь этот bin можно цеплять уже к рабочей программе. Хотя этот способ конечно через одно место, но позволяет даже не ставить компилятор для ПК.
[uquote="Up2805",url="/forum/viewtopic.php?p=4241104#p4241104"]И дело не в том чтобы конвертЕр массива набросать, а дело в том, чтобы прога готовила не просто массив пикселей символа шрифта, а делала именно наиболее оптимальным способом.[/uquote]И что? В чём проблема? Если Вы - программист, пишущий программу на МК, то кому как не Вам лучше всего должно быть известно - как именно наиболее оптимально хранить шрифт в вашей программе. Программа то ведь Ваша! Значит Вам и знать как там лучше его хранить, чтобы удобнее было его использовать в программе.
100500 раз писал всякие конвертеры/пакователи шрифтов для своих прошивок. Потому как - каждый раз, на каждом МК есть свои особенные требования к формату шрифтов - в одной прошивке важнее минимальный размер памяти занимаемый шрифтом, в другой - скорость его вывода, в 3й - шрифт должен быть вертикальным, в 4й - горизонтальным, в 5й - символы удобнее паковать единым битовым потоком, в 6й - строки пикселей не должны пересекать границы байтов и т.п. Ни одна готовая программа не удовлетворяет всем требованиям полностью, во всех чего-то не хватает.
Re: Генератор фонтов для дисплеев CX Font Generator
Словами написать на форуме конечно проще. Если умеете в коде это делать, так сделайте, плиз. Вам народ спасибо скажет. А за пустые разглагольствования общими фразами - ничего хвалебного сказать не могу.
Да и зачем делать костыли, когда есть готовые решения?
Да и зачем делать костыли, когда есть готовые решения?
Re: Генератор фонтов для дисплеев CX Font Generator
[uquote="Up2805",url="/forum/viewtopic.php?p=4241131#p4241131"]Если умеете в коде это делать, так сделайте, плиз.[/uquote]Сделать что? Я же пишу: каждый раз под конкретную задачу пишу конвертор в формат, удобный для этой задачи. Пытаться писать что-то универсальное - затея бесперспективная.
Да и вы можете. Просто попробуйте. Это много быстрее, чем искать готовые, а потом пытаться ещё их как-то подстроить под свои нужды. Не такое это сложное дело - сконвертировать шрифт.
Да и вы можете. Просто попробуйте. Это много быстрее, чем искать готовые, а потом пытаться ещё их как-то подстроить под свои нужды. Не такое это сложное дело - сконвертировать шрифт.
Re: Генератор фонтов для дисплеев CX Font Generator
Очень огромная.jcxz писал(а): Какая разница - МК или ПК?
Код: Выделить всё
public partial class LedsEDA : UserControl
{
// [TypeConverter(typeof(LedsEDAsettings))]
public LedsEDAsettings Settings { get; set; } = new();
[TypeConverter(typeof(Graticule))]
public Graticule Graticule { get; set; } = new();
public LedsEDA()
{
InitializeComponent();
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true);
}
private void LedsEDA_Paint(object sender, PaintEventArgs e)
{
e.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
e.Graphics.TranslateTransform(0, Height);
e.Graphics.ScaleTransform(1, -1);
e.Graphics.Clear(Settings.backcolor);
Graticule?.DrawGrid(e.Graphics, Width, Height);
}
}