Скажите пожалуйста, как в настройках программы задать кодирование колонками байт, (по страницам, удобно для OLED экрана SSD1306). Так, как сделано в The Dot Factory ? В ней эта настройка называется "Bit Layout" -> "ColumnMajor" (Расположение бит -> По столбцам).
Если надо переделывать под свои нужды, то надо не сами шрифты в С формате, а именно программу для их создания. Байтовые массивы заманаетесь вручную переделывать.
Я не вручную, я прогу написала. Пока у меня два шрифта - на 127 и на 255 символов. Один для наших нужд пришлось транспонировать, второй переворачивать с ног на голову. Так что с этим проблем не будет. Вот где их найти....
Ужс... Создать, вестимо! Берёте генератор и в путь. Вам помочь? А ищется всё на гитхабе. Под ту графическую библиотеку, которую используете. Проекты на них обычно выкладывают вместе со шрифтами. Или вопрос о шрифтах для операционной системы, ttf, otf?
Мы не используем библиотеки, пишем все сами, ручками. Поэтому и шрифты у нас выводятся так, как нам удобно. Мне нужны адекватные шрифты, а уж к нашему формату я сама все приведу. Я тоже не совсем понимаю почему мы сами не можем написать (начальнику виднее) - это вообще не проблема. Этих генераторов полно. Вот еще вопрос, можно ли ttf растрировать.... Сколько не рылась, найти не смогла как это можно сделать. А может и нельзя... В стандартных библиотеках какие-то странные шрифты. Обычно шрифт выглядит гораздо проще. Вот, например, я нашла отличный шрифт https://pastebin.com/J9Ya3a68. Ничего лишнего, все предельно понятно. А в готовых библиотеках вообще не понятно по какому принципу шрифты формируют.
а почему нет? Если имеется ввиду перевод в растр фиксированного размера, а не использование прям на мк. Вроде бы, программа ТС именно это делает? Если на мк, то на ARM это тоже было, например в Segger emWin
В стандартных библиотеках какие-то странные шрифты.
Они оптимизированные. Чтобы меньше памяти занимать. Например, зачем символ точки, буквы i и Ж хранить в одинаковых по размеру массивах 20*30 пикселей? Или зачем хранить все символы от 0x20 до 0xff, если нам нужны только цифры, латиница и наша кириллица?
Цитата:
Я тоже не совсем понимаю почему мы сами не можем написать (начальнику виднее) - это вообще не проблема.
Если вы ему предложили создать шрифт в том смысле, что нарисовать каждую букву вручную, то он прав. Только вот это не обязательно. Берётся готовый открытый (лицензия) шрифт и из него генерится Cишный файл. В том же генераторе, при необходимости, можно подправить отдельные буквы. Не страдайте фигнёй.
Меня тоже крайне интересует тема создания шрифтов, причем желательно по своему шаблону. Пользовался IconEdit и DotFactory. Первая всем хороша, но генерит неудобный и неэкономичный массив для шрифтов разной высоты. Вторая прога генерит удобный массив, но в ней нельзя отредактировать отдельные символы. Какие еще есть проги для генерации шрифтов?
Спасибо. У меня есть такая прога, только я почемуто ее не использовал. Сейчас буду разбираться. Похоже это то, что нужно. Надо её обследовать детально.
Меня тоже крайне интересует тема создания шрифтов, причем желательно по своему шаблону. Пользовался IconEdit и DotFactory. Первая всем хороша, но генерит неудобный и неэкономичный массив для шрифтов разной высоты.
Шрифты - видимо для какой-то своей программы? Значит Вы - программист. Тогда в чём проблема набросать простой конвертор этого массива в любой удобный формат?
Да, я программист. Микроконтроллеров. Эмбеддер, если по-русски А вот как набросать этот ваш простой конвертОр массива вне микроконтроллера, это я не знаю. А вы можете набросать? И дело не в том чтобы конвертЕр массива набросать, а дело в том, чтобы прога готовила не просто массив пикселей символа шрифта, а делала именно наиболее оптимальным способом. Например, DotFactory умеет герерить таблицу символов с параметрами символа, а так же общее описание параметров шрифта и карты включенных в шрифт символов. Эта особенность позволяет компактно уместить в память несколько шрифтов разных размеров и разного состава символов и выводить их через единый интерфейс, не парясь отдельным указанием всех параметров символа. Но в DotFactory нет возможности отредактировать попиксельно символ или нарисовать его. В IconEdit такая возможность есть, но генерируемый формат данных не подходит для компактного хранения шрифтов разных размеров. Поэтому и ищу прогу, удовлетворяющую моим требованиям. Возможно, это будет lcd-image-converter
Да, я программист. Микроконтроллеров. Эмбеддер, если по-русски А вот как набросать этот ваш простой конвертОр массива вне микроконтроллера, это я не знаю. А вы можете набросать?
Конечно. Какая разница - МК или ПК? Си он одинаков везде. А написать программу под Win ещё проще, чем для МК. Но в принципе можно конвертор и на МК сделать, если уж под Win неохота: цепляете bin-образ исходного шрифта (в исходном формате) к образу программы-конвертора на МК; в программе его конвертируете; выводите например через UART наружу например в base64- или uuencode- формате; в терминалке записываете полученный base64- или uuencode- файл и конвертируете его в bin. Всё! Теперь этот bin можно цеплять уже к рабочей программе. Хотя этот способ конечно через одно место, но позволяет даже не ставить компилятор для ПК.
И дело не в том чтобы конвертЕр массива набросать, а дело в том, чтобы прога готовила не просто массив пикселей символа шрифта, а делала именно наиболее оптимальным способом.
И что? В чём проблема? Если Вы - программист, пишущий программу на МК, то кому как не Вам лучше всего должно быть известно - как именно наиболее оптимально хранить шрифт в вашей программе. Программа то ведь Ваша! Значит Вам и знать как там лучше его хранить, чтобы удобнее было его использовать в программе. 100500 раз писал всякие конвертеры/пакователи шрифтов для своих прошивок. Потому как - каждый раз, на каждом МК есть свои особенные требования к формату шрифтов - в одной прошивке важнее минимальный размер памяти занимаемый шрифтом, в другой - скорость его вывода, в 3й - шрифт должен быть вертикальным, в 4й - горизонтальным, в 5й - символы удобнее паковать единым битовым потоком, в 6й - строки пикселей не должны пересекать границы байтов и т.п. Ни одна готовая программа не удовлетворяет всем требованиям полностью, во всех чего-то не хватает.
Словами написать на форуме конечно проще. Если умеете в коде это делать, так сделайте, плиз. Вам народ спасибо скажет. А за пустые разглагольствования общими фразами - ничего хвалебного сказать не могу. Да и зачем делать костыли, когда есть готовые решения?
Если умеете в коде это делать, так сделайте, плиз.
Сделать что? Я же пишу: каждый раз под конкретную задачу пишу конвертор в формат, удобный для этой задачи. Пытаться писать что-то универсальное - затея бесперспективная. Да и вы можете. Просто попробуйте. Это много быстрее, чем искать готовые, а потом пытаться ещё их как-то подстроить под свои нужды. Не такое это сложное дело - сконвертировать шрифт.
Представьте, что Вы от и до знаете работу с графикой с STM32, а теперь Вам сказали написать что-то для Win GDI и требуется вышеприведённый код. Много тут от знаний в STM32? Даже между разными мк разница огромная и требует времени
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения