Программа для преобразования изображений в bitmap
- Веб-версия - https://alexgyver.github.io/Bitmaper/, можно установить как веб-приложение
- Релиз HTML версия - открывать в браузере
- Релиз .h версия - для вставки в ESP проект с сервером. Смотри пример в папке arduino
- Установить VS Code
- Установить Node JS
- Открыть папку в VS Code
- Консоль Ctrl + `
npm install, дождаться установки зависимостейnpm run buildили запустить скрипт build.bat- Проект соберётся в папку dist
1x pix/byte- 1 пиксель в байте, строками слева направо сверху вниз [data_0, ...data_n]8x Horizontal- 8 пикселей в байте горизонтально (MSB слева), строками слева направо сверху вниз [data_0, ...data_n]8x Vertical- 8 пикселей в байте вертикально (MSB снизу), столбцами сверху вниз слева направо [data_0, ...data_n]GyverGFX BitMap- 8 пикселей вертикально (MSB снизу), строками слева направо сверху вниз: [widthLSB, widthMSB, heightLSB, heightMSB, data_0, ...data_n]GyverGFX BitPack- сжатый формат*: [heightLSB, heightMSB, lenLSB, lenMSB, data_0, ...data_n]GyverGFX Image- программа выберет лёгкий между BitMap и BitPack: [0 map | 1 pack, x, x, x, x, data_0, ...data_n]
* На изображениях со сплошными участками BitPack может быть в разы эффективнее обычного BitMap. На изображениях с dithering работает неэффективно.
Как кодирует BitPack: младший бит - состояние пикселя, остальные - количество. Сканирование идёт столбцами сверху вниз слева направо. Один чанк - 6 бит (состояние + 5 бит количества), 4 чанка пакуются в три байта как aaaaaabb, bbbbcccc, ccdddddd
Inverse- инвертировать цветаGamma- логарифмическая яркостьBrightness- яркостьContrast- контрастBlur- размытиеEdges- усиление краёвSobel Edges- выделение краёв с настройкой интенсивностиDither- псевдо оттенки серого через шумThreshold- порог разделения оттенков серого на белый и чёрный. Не имеет смысла при включённом DitherMedian Edges- выделение краёв в толщину 1px. Работает на ч/б изображении, поэтому зависит от Threshold
- Действия кнопок мыши при включенном редакторе: ЛКМ - добавить точку, ПКМ - стереть точку, СКМ - отменить изменения на слое редактора
- При изменении размера битмапа, при перемещении и масштабировании изображения слой редактора очищается
- Активный пиксель на выбранном стиле отображения:
OLED- голубой,Paper- чёрный - При открытии приложения с локального сервера (IP адрес в строке адреса), например с esp, появится кнопка Send - при нажатии приложение отправит битмап в выбранном формате через formData на url /bitmap с query string параметрами width и height, т.е.
<ip>/bitmap?width=N&height=N