Крупный шрифт для E-ink 4.2"

В готовом проекте метеостанции(да-да, и часы там тоже есть, всё как мы любим :slightly_smiling_face:) слишком мелкий шрифт и пришло решение добавить режим работы в качестве календаря(основной), а метеостанция уже по желанию(тапу кнопки).
Упёрся в шрифт для числа месяца. Максимальный для u8g2 нашёлся 92 размера(на картинке), а хочется во весь размер красной рамки. Основной вопрос как правильней/экономней/проще для домохозяек это реализовать? Использовать отдельные подготовленные картинки или изобретать полноценный шрифт и либо вкрячивать его в u8g2, либо оформлять как библиотеку(ужас-ужас). @ЕвгенийП , @lilik как пользовавшие данный дисплей - есть совет какой для тупеньких?

Могу поделиться готовой реализацией для вот такого (дисплей тоже 4.2)

Но он поменьше, чем Ваша красная рамка.

А делал - вводил в Windows Paint нужным размером, сохранял в формате “.bmp”. Потом вытаскивал из битмэпа байты и, самое трудное - подбирал кернинг (сам не смог – напряг внука, он подбирал).

И сейчас так бы делал – более просто пути не знаю. Тем более, что в Windows богатый набор шрифтов, можно любые “красоты” набрать.

2 лайка


Я склоняюсь к картиночному отображению данных, тем более, что в рамках календаря их не много, а мало :slight_smile:
…пеинт нет - наше всё. Но надо аккуратно с ним. У меня на картинке хорошо видно, что цифры 4 и 5 чуть ниже (пиксель, два, три), чем 1 и 2.

1 лайк

Спасибо, с удовольствием бы посмотрел выложенным в “Проектах” :dotted_line_face:

@lilik Не Жадина :face_with_tongue:.

Почему я жадина? Все файлы могу выложить, но там же будет говнокод по общефорумным меркам…и файлов много мелких…и под esp32 или rp2040, на уно не делал.

1 лайк

Ну, (скромно ковыряясь в земле), я несколько раз просил/намекал выложить в проектах ещё когда он бы чёрно белым, а вы отказывали мотивировав что там личные фото. Повздыхал и ладно. Прошу прощения за жадину, енто я не из вредности :roll_eyes:

Хренушки! Реализацией шрифта могу поделиться, а проект целиком – это 10 мегабайтов и сотни файлов. Вот щас я буду всё это приводить в вид, пристойный для публикации :slight_smile:

Кстати, у меня всё это добро на Atmega328p, если чё.

2 лайка

А меня больше одного уже в сомнения вводят.

Полноценный шрифт - необязательно.
Достаточно шрифт, содержащий только цифры (10 знаков вместо 195 - это если без кириллицы).

1 лайк

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

Вот примеры файлов из того самого проекта

Вот, один

#ifndef INDEXABLE_H
#define INDEXABLE_H

struct Indexable {
	virtual unsigned char operator[](const int) const = 0;
};

#endif	//	INDEXABLE_H

А вот другой файл

#ifndef	SCREEN_H
#define	SCREEN_H

#include <DataPackage.h>

extern void drawScreen(const DataPackage & inside, const DataPackage & outside, const bool drawLocal = true, const bool drawRemote = true);
extern void clearScreen(void);

#endif	// SCREEN_H

Вот третий

#ifndef PROGMEMIMSGE_H
#define PROGMEMIMSGE_H

#include <avr/pgmspace.h>

#include "Indexable.h"

struct ProgmemImage : public Indexable {
	ProgmemImage(const unsigned char *pBuf)  : 
			m_buf(pBuf), m_width(pgm_read_byte(pBuf)), m_height(pgm_read_byte(pBuf+1)) { 
		m_total = m_width * m_height;
	}
	int width(void) const { return m_width; }
	int height(void) const { return m_height; }
	int totalBytes(void) const { return m_total; }
	unsigned char operator[](const int n) const { return pgm_read_byte(m_buf + 2 + n); }
private:
	const unsigned char * m_buf;
	const int m_width, m_height;
	int m_total;
};

#endif	//	PROGMEMIMSGE_H

и такого добра там несколько сотен.

1 лайк

Ну, у меня там ещё знак градуса, плюс с минусом, иконка “Дома” / “На улице” и значки по-разному заряженной батарейки. Т.е. менее 20 символов.

Что-то мне кажется, что для большого шрифта из всего перечисленного нужен только минус. Все остальное - шрифтами меньших размеров. И, кроме того, лично я придерживаюсь убеждения, что степени заряда нужно отображать не как символы, а как картинки.
Хотя бы потому, что это изображение не обязано быть монохромным:

1 лайк

Ну так это для тех кто знает толк в вине :slight_smile: А тем кому он забродивший сок…

Просим :slightly_smiling_face:

Дисплей черно-белый, так что …

А так-то да, да его видно в правом верхнем углу экрана.

Ну, ладно тока мне надо подготовить пример использования.

Может завтра, а то сегодня у меня увлекательное занятие – пытаюсь гугловский ИИ заставить избавиться от “кривизны синусоиды” в схеме генератора Колпитца с общей базой :slight_smile:

1 лайк

Воть. Самолепный шрифт! Добавить в библиотеку чёй-то не вышло, но из ino-шного файла работает. Осталось гарганьтюировать. :grinning_face:

P.S. Блин, а на них нет как на олед маштабирования?

Это не свойство олед, а фича программы. Сделаете – будет.

А вам реально нужен крупный шрифт 5×7 ???