Параметры преобразования отдельного изображения.
- Общие
- Разбивать данные на строки;
- Блок данных:
- 8 бит;
- 16 бит;
- 24 бита;
- 32 бита;
- теоретически можно расширить до 64 бит, но работать будет совсем неудобно;
- Сжатие RLE;
- Порядок байт, Little-Endian или Big-Endian;
- Завершающие биты - биты в блоках данных, не относящиеся к самому исходному изображению;
- Данные - параметры перевода блоков данных в строку кода;
- Префикс [dp];
- Суффикс [ds];
- Разделитель [dd];
- Предпросмотр - параметры перевода исходного изображения в строковое представление для предпросмотра в комментариях к коду;
- Префикс [pp];
- Суффикс [ps];
- Разделитель [pd];
- Замена уровней [pr].
Фрагмент выходного кода:
...
#if (0x0 == 0x0)
static const uint8_t image_data_FontBlack_0x25[21] = {
// ███████████
// █████[pd]██████
[pp // ]███████████
// ███████████[ps]
// ███████████
// ██∙∙∙███∙██
// █∙███∙█∙███
// █∙███∙∙████
// █∙███∙∙████
// ██∙∙∙∙█████
// █████∙█∙∙∙█
// ████∙█∙███∙
// ███∙██∙███∙
// ███∙██∙███∙
// ██∙████∙∙∙█
// ███████████
// ███████████
// ██████[pr █]████
// ███████████
[dp 0x]07, 0xff, 0xf2, 0x8e, 0xee[ds], 0xbd, 0xcf, 0xb9[dd , ]0xf8, 0x7f, 0xe8, 0xfa, 0xee, 0xdd, 0xdb, 0xb7, 0x8f, 0x05, 0xff, 0xff, 0x80
};
static const tImage FontBlack_0x25 = { image_data_FontBlack_0x25,
11, 19, 8};
#endif
...
Для замены уровней применяется массив строк. Например:
∙ ░ ▒ ▓ █
Количество строк определяет количество уровней. Исходное изображение приводится к градациям серого методом qGray, получаются значения от 0 до 255. Эти значения делятся на количество уровней, и выбирается соответствующая строка замены.
Например:
- 2 строки, интервал 128
- Уровень 0 = qGray() ≥ 0
- Уровень 1 = qGray() ≥ 128 * 1
- 3 строки, интервал 85.(3)
- Уровень 0 = qGray() ≥ 0
- Уровень 1 = qGray() ≥ 85 * 1
- Уровень 2 = qGray() ≥ (85 * 2 = 170)
- 4 строки, интервал 64
- Уровень 0 = qGray() ≥ 0
- Уровень 1 = qGray() ≥ 64 * 1
- Уровень 2 = qGray() ≥ (64 * 2 = 128)
- Уровень 3 = qGray() ≥ (64 * 3 = 192)
- 5 строк, интервал 51.2
- Уровень 0 = qGray() ≥ 0
- Уровень 1 = qGray() ≥ 51 * 1
- Уровень 2 = qGray() ≥ (51 * 2 = 102)
- Уровень 3 = qGray() ≥ (51 * 3 = 153)
- Уровень 4 = qGray() ≥ (51 * 4 = 204)