GithubHelp home page GithubHelp logo

saiv46 / bitmaper Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alexgyver/bitmaper

0.0 0.0 0.0 43 KB

Программа для преобразования изображений в bitmap

JavaScript 90.16% C++ 1.72% CSS 7.88% HTML 0.23% Batchfile 0.02%

bitmaper's Introduction

Bitmaper

Программа для преобразования изображений в bitmap

Как запустить

Как собрать из исходников

  • Установить 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 - порог разделения оттенков серого на белый и чёрный. Не имеет смысла при включённом Dither
  • Median Edges - выделение краёв в толщину 1px. Работает на ч/б изображении, поэтому зависит от Threshold

Редактор (Editor)

  • Действия кнопок мыши при включенном редакторе: ЛКМ - добавить точку, ПКМ - стереть точку, СКМ - отменить изменения на слое редактора
  • При изменении размера битмапа, при перемещении и масштабировании изображения слой редактора очищается

Прочее

  • Активный пиксель на выбранном стиле отображения: OLED - голубой, Paper - чёрный
  • При открытии приложения с локального сервера (IP адрес в строке адреса), например с esp, появится кнопка Send - при нажатии приложение отправит битмап в выбранном формате через formData на url /bitmap с query string параметрами width и height, т.е. <ip>/bitmap?width=N&height=N

bitmaper's People

Contributors

gyverlibs avatar alexgyver avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.