Изображение

Параметры преобразования отдельного изображения.

Диалог настроек изображения

  • Общие
    • Разбивать данные на строки;
    • Блок данных:
      • 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)