Как создать Русский шрифт для Adafruit GFX?

Подскажите как

Вопросы от новичков
Ответить
Аватара пользователя
diman27
Сержант
Сообщения: 269
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 4
Откуда: Белово

Как создать Русский шрифт для Adafruit GFX?

#1

Сообщение diman27 » 05.10.2019{, 08:30}

Привет всем. Сделал часы на ленте ws2812 из Этой темы, но цифры занимают только 7 линеек. Пробовал сделать шрифты по видео автора, но там только английские шрифты. Подскажите как самому нарисовать или изменить существующие шрифты.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Как создать Русский шрифт для Adafruit GFX?

#2

Сообщение aidar_i » 05.10.2019{, 14:46}

Почитайте тут
http://arduino.ru/forum/programmirovani ... lei-v-kodi

Отправлено спустя 6 минут 28 секунд:
Вот редактор
http://arduino.ru/forum/proekty/binfont ... a-ms-excel

Адафруитовский конвертер http://out.arduino.ru/?redirect=https%3 ... a-ms-excel

Аватара пользователя
diman27
Сержант
Сообщения: 269
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 4
Откуда: Белово

Как создать Русский шрифт для Adafruit GFX?

#3

Сообщение diman27 » 06.10.2019{, 07:28}

Я имел ввиду немного другое, самому нарисовать буквы и импортировать.
Я использовал и набил свои буквы, как мне его в библиотеку импортировать, пробовал, кракозябры получились. Или может еще какой софт есть? Те темы читал, но там штатные шрифты делают, а я хочу свой размер сделать.
Вложения
FastFont_v0.03.rar
(569.77 КБ) 46 скачиваний

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Как создать Русский шрифт для Adafruit GFX?

#4

Сообщение aidar_i » 06.10.2019{, 14:07}

Вот это смотрели?
Я попробовал, как раз Вам подойдет!
FontEditorRel.zip
(400.12 КБ) 64 скачивания
Снял даже ВИДЕО.
По быстрому попробовал данный редактор.

Все таки Вам нужен штатный конвертер.
СпойлерПоказать

Аватара пользователя
diman27
Сержант
Сообщения: 269
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 4
Откуда: Белово

Как создать Русский шрифт для Adafruit GFX?

#5

Сообщение diman27 » 06.10.2019{, 16:43}

Создал шрифт в этой программе, а как его в библиотеку добавить?
Вложения
Font_7x10_my.c
(31 КБ) 59 скачиваний

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Как создать Русский шрифт для Adafruit GFX?

#6

Сообщение aidar_i » 07.10.2019{, 18:20}

Почитайте fontconvert_win.md и попробуйте установить все как там написано. Еще видео.
Вот еще статья.

Вам нужно заполнить эту часть шрифта аналогично (взято с библиотеки) вручную или скомпилировать программами указанными выше.
СпойлерПоказать
const GFXglyph Open_Sans_Bold_7Glyphs[] PROGMEM = {
// bitmapOffset, width, height, xAdvance, xOffset, yOffset
{ 0, 1, 1, 3, 0, 0 }, // ' '
{ 1, 3, 5, 3, 0, -5 }, // '!'
{ 3, 4, 2, 4, 0, -5 }, // '"'
{ 4, 5, 5, 6, 0, -5 }, // '#'
{ 8, 5, 5, 5, 0, -5 }, // '$'
{ 12, 7, 5, 7, 0, -5 }, // '%'
{ 17, 6, 5, 6, 0, -5 }, // '&'
{ 21, 2, 2, 3, 0, -5 }, // '''
{ 22, 3, 6, 3, 0, -5 }, // '('
{ 25, 3, 6, 3, 0, -5 }, // ')'
{ 28, 5, 3, 5, 0, -5 }, // '*'
{ 30, 5, 3, 5, 0, -4 }, // '+'
{ 32, 3, 2, 3, 0, -1 }, // ','
{ 33, 3, 1, 3, 0, -2 }, // '-'
{ 34, 3, 1, 3, 0, -1 }, // '.'
{ 35, 4, 5, 4, 0, -5 }, // '/'
{ 38, 5, 5, 5, 0, -5 }, // '0'
{ 42, 4, 5, 5, 0, -5 }, // '1'
{ 45, 5, 5, 5, 0, -5 }, // '2'
{ 49, 5, 5, 5, 0, -5 }, // '3'
{ 53, 5, 5, 5, 0, -5 }, // '4'
{ 57, 5, 5, 5, 0, -5 }, // '5'
{ 61, 5, 5, 5, 0, -5 }, // '6'
{ 65, 5, 5, 5, 0, -5 }, // '7'
{ 69, 5, 5, 5, 0, -5 }, // '8'
{ 73, 5, 5, 5, 0, -5 }, // '9'
{ 77, 3, 4, 3, 0, -4 }, // ':'
{ 79, 3, 5, 3, 0, -4 }, // ';'
{ 81, 5, 3, 5, 0, -4 }, // '<'
{ 83, 5, 3, 5, 0, -4 }, // '='
{ 85, 5, 3, 5, 0, -4 }, // '>'
{ 87, 4, 5, 4, 0, -5 }, // '?'
{ 90, 7, 6, 7, 0, -5 }, // '@'
{ 96, 6, 5, 6, 0, -5 }, // 'A'
{ 100, 4, 5, 6, 1, -5 }, // 'B'
{ 103, 5, 5, 5, 0, -5 }, // 'C'
{ 107, 5, 5, 6, 1, -5 }, // 'D'
{ 111, 4, 5, 5, 1, -5 }, // 'E'
{ 114, 4, 5, 5, 1, -5 }, // 'F'
{ 117, 6, 5, 6, 0, -5 }, // 'G'
{ 121, 5, 5, 6, 1, -5 }, // 'H'
{ 125, 2, 5, 3, 1, -5 }, // 'I'
{ 127, 4, 6, 3, -1, -5 }, // 'J'
{ 130, 5, 5, 6, 1, -5 }, // 'K'
{ 134, 4, 5, 5, 1, -5 }, // 'L'
{ 137, 6, 5, 8, 1, -5 }, // 'M'
{ 141, 5, 5, 7, 1, -5 }, // 'N'
{ 145, 6, 5, 7, 0, -5 }, // 'O'
{ 149, 4, 5, 5, 1, -5 }, // 'P'
{ 152, 6, 6, 7, 0, -5 }, // 'Q'
{ 157, 5, 5, 6, 1, -5 }, // 'R'
{ 161, 5, 5, 5, 0, -5 }, // 'S'
{ 165, 5, 5, 5, 0, -5 }, // 'T'
{ 169, 5, 5, 6, 1, -5 }, // 'U'
{ 173, 6, 5, 6, 0, -5 }, // 'V'
{ 177, 8, 5, 8, 0, -5 }, // 'W'
{ 182, 6, 5, 6, 0, -5 }, // 'X'
{ 186, 5, 5, 5, 0, -5 }, // 'Y'
{ 190, 5, 5, 5, 0, -5 }, // 'Z'
{ 194, 3, 6, 3, 0, -5 }, // '['
{ 197, 4, 5, 4, 0, -5 }, // '\'
{ 200, 3, 6, 3, 0, -5 }, // ']'
{ 203, 5, 3, 5, 0, -5 }, // '^'
{ 205, 4, 2, 4, 0, 0 }, // '_'
{ 206, 3, 1, 5, 1, -5 }, // '`'
{ 207, 5, 4, 5, 0, -4 }, // 'a'
{ 210, 4, 5, 5, 1, -5 }, // 'b'
{ 213, 4, 4, 5, 0, -4 }, // 'c'
{ 215, 5, 5, 5, 0, -5 }, // 'd'
{ 219, 5, 4, 5, 0, -4 }, // 'e'
{ 222, 4, 5, 4, 0, -5 }, // 'f'
{ 225, 5, 6, 5, 0, -4 }, // 'g'
{ 229, 4, 5, 6, 1, -5 }, // 'h'
{ 232, 2, 5, 3, 1, -5 }, // 'i'
{ 234, 3, 7, 3, 0, -5 }, // 'j'
{ 237, 4, 5, 5, 1, -5 }, // 'k'
{ 240, 2, 5, 3, 1, -5 }, // 'l'
{ 242, 6, 4, 8, 1, -4 }, // 'm'
{ 245, 4, 4, 6, 1, -4 }, // 'n'
{ 247, 5, 4, 5, 0, -4 }, // 'o'
{ 250, 4, 6, 5, 1, -4 }, // 'p'
{ 253, 5, 6, 5, 0, -4 }, // 'q'
{ 257, 3, 4, 4, 1, -4 }, // 'r'
{ 259, 4, 4, 4, 0, -4 }, // 's'
{ 261, 4, 5, 4, 0, -5 }, // 't'
{ 264, 4, 4, 6, 1, -4 }, // 'u'
{ 266, 5, 4, 5, 0, -4 }, // 'v'
{ 269, 7, 4, 7, 0, -4 }, // 'w'
{ 273, 5, 4, 5, 0, -4 }, // 'x'
{ 276, 5, 6, 5, 0, -4 }, // 'y'
{ 280, 4, 4, 4, 0, -4 }, // 'z'
{ 282, 3, 6, 4, 0, -5 }, // '{'
{ 285, 3, 7, 5, 1, -5 }, // '|'
{ 288, 4, 6, 4, 0, -5 } // '}'
};
const GFXfont Open_Sans_Bold_7 PROGMEM = {
(uint8_t *)Open_Sans_Bold_7Bitmaps,(GFXglyph *)Open_Sans_Bold_7Glyphs,0x20, 0x7E, 11};
Вот гугле перевод структуры шрифтов
СпойлерПоказать
// Структуры шрифтов для более новой версии Adafruit_GFX (1.1 и более поздние).
// Примеры шрифтов включены в каталог «Fonts».
// Чтобы использовать шрифт в скетче Arduino, #include соответствующий .h
// файл и адрес передачи структуры GFXfont для setFont (). Передать NULL
// возвращаемся к «классическому» растровому шрифту с фиксированным пространством.

#ifndef _GFXFONT_H_
#define _GFXFONT_H_

/// Font data stored PER GLYPH
typedef struct {
uint16_t bitmapOffset; /// <Указатель на GFXfont-> растровое изображение
uint8_t width; /// <Растровые размеры в пикселях
uint8_t height; /// <Растровые размеры в пикселях
uint8_t xAdvance; /// <Расстояние до курсора (ось x)
int8_t xOffset; /// <X dist от курсора pos к углу UL
int8_t yOffset; /// <Y расстояние от позиции курсора до угла UL
} GFXglyph;

/// Данные хранятся для шрифта в целом
typedef struct {
uint8_t *bitmap; /// < /// <Glyph bitmaps, сцепленные
GFXglyph *glyph; /// <массив глифов
uint8_t first; /// <ASCII экстенты (последний символ)
uint8_t last; /// <ASCII экстенты (первый символ)
uint8_t yAdvance; /// <расстояние новой строки (ось y)
} GFXfont;

#endif // _GFXFONT_H_
У меня почему то не получилось установить библиотеку freetype в MinGw

Аватара пользователя
diman27
Сержант
Сообщения: 269
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 4
Откуда: Белово

Как создать Русский шрифт для Adafruit GFX?

#7

Сообщение diman27 » 07.10.2019{, 19:14}

Я пробовал так сделать, и библиотека даже схавала его, но на экране кракозябры, даже цифры.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Как создать Русский шрифт для Adafruit GFX?

#8

Сообщение aidar_i » 07.10.2019{, 19:51}

Я здесь уже не смогу помочь.
Погуглите, может что нибудь нароете.

Как вариант , можете вставить в системный шрифт свой код. Должен работать.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Как создать Русский шрифт для Adafruit GFX?

#9

Сообщение aidar_i » 09.10.2019{, 10:38}

diman27 писал(а):
06.10.2019{, 07:28}
Я имел ввиду немного другое, самому нарисовать буквы и импортировать.
Я использовал и набил свои буквы, как мне его в библиотеку импортировать, пробовал, кракозябры получились. Или может еще какой софт есть? Те темы читал, но там штатные шрифты делают, а я хочу свой размер сделать.
ВЛОЖЕНИЯ
FastFont_v0.03.rar
(569.77 КБ) 3 скачивания
Вернуться к началу
Вот Ваш шрифт вставил в glcdfont.c, замените в библиотеке и будет работать. А другие шрифты можете с помощью выбора шрифта использовать.
glcdfont.c
(13.37 КБ) 52 скачивания
diman27 писал(а):
06.10.2019{, 16:43}
Создал шрифт в этой программе, а как его в библиотеку добавить?
ВЛОЖЕНИЯ
Font_7x10_my.c
(31 КБ) 3 скачивания
Аналогично, но таким образом можно только один свой шрифт использовать.
Последний созданный Вами шрифт работает, но там неправильно расставлены буквы и символы.


Пример, там и блок выбора шрифта со входом добавил.
Выбор шрифтов1.flp
(378.08 КБ) 47 скачиваний

Аватара пользователя
diman27
Сержант
Сообщения: 269
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 4
Откуда: Белово

Как создать Русский шрифт для Adafruit GFX?

#10

Сообщение diman27 » 22.10.2019{, 13:42}

Ни как не могу победить шрифт, или маленький, или сильно большой. Замучился уже.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Как создать Русский шрифт для Adafruit GFX?

#11

Сообщение aidar_i » 22.10.2019{, 20:29}

Какой Вам размер нужен?

Аватара пользователя
diman27
Сержант
Сообщения: 269
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 4
Откуда: Белово

Как создать Русский шрифт для Adafruit GFX?

#12

Сообщение diman27 » 23.10.2019{, 14:48}

у меня матрица 30х10 цифры занимают 7х5+1 пробел. В идеале хотелось бы заполнить дисплей по максимуму. 9х5+1 пробел идеально было бы.

Ответить

Вернуться в «Начинающим»