{"id":16007266,"url":"https://github.com/pkolt/bitmap_editor","last_synced_at":"2025-06-15T12:32:06.904Z","repository":{"id":211951899,"uuid":"729892012","full_name":"pkolt/bitmap_editor","owner":"pkolt","description":"Open source editor for bitmap images","archived":false,"fork":false,"pushed_at":"2024-09-08T09:44:16.000Z","size":2286,"stargazers_count":10,"open_issues_count":5,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T09:37:49.996Z","etag":null,"topics":["adafruit-gfx","arduino","oled","ssd1306","u8g2"],"latest_commit_sha":null,"homepage":"https://pkolt.github.io/bitmap_editor/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pkolt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-10T17:12:25.000Z","updated_at":"2025-03-31T17:38:14.000Z","dependencies_parsed_at":"2024-02-25T16:27:06.772Z","dependency_job_id":"af9edcf8-5aaa-4ce4-b1a8-d303364a8aa8","html_url":"https://github.com/pkolt/bitmap_editor","commit_stats":{"total_commits":255,"total_committers":1,"mean_commits":255.0,"dds":0.0,"last_synced_commit":"5cc36f38557d1a1b87e046d63516cb5f4d25fb00"},"previous_names":["pkolt/pixel_editor","pkolt/bitmap_editor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pkolt/bitmap_editor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkolt%2Fbitmap_editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkolt%2Fbitmap_editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkolt%2Fbitmap_editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkolt%2Fbitmap_editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkolt","download_url":"https://codeload.github.com/pkolt/bitmap_editor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkolt%2Fbitmap_editor/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259977258,"owners_count":22941110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adafruit-gfx","arduino","oled","ssd1306","u8g2"],"created_at":"2024-10-08T12:02:31.192Z","updated_at":"2025-06-15T12:32:06.852Z","avatar_url":"https://github.com/pkolt.png","language":"TypeScript","readme":"# Bitmap Editor\n\n✨ Open source editor for [bitmap](https://en.wikipedia.org/wiki/X_BitMap) images.\n\n👍 Will help you create pictures for libraries [U8g2](https://github.com/olikraus/u8g2) and [Adafruit SSD1306](https://github.com/adafruit/Adafruit_SSD1306).\n\n👉 [Bitmap Editor website](https://pkolt.github.io/bitmap_editor/)\n\n## Usage\n\n### Create bitmap from image\n\n![Draw image](./docs/draw_image.jpg)\n\n### Export bitmap\n\n![Export image](./docs/export_image.jpg)\n\n### Download bitmap to your device\n\n![Download image](./docs/download_image.jpg)\n\n## Examples\n\n### Arduino + Adafruit SSD1306\n\nIf you are using library [Adafruit SSD1306](https://github.com/adafruit/Adafruit_SSD1306):\n\n```cpp\n#include \u003cWire.h\u003e\n#include \u003cAdafruit_GFX.h\u003e\n#include \u003cAdafruit_SSD1306.h\u003e\n\n#define SCREEN_WIDTH 128  // OLED display width, in pixels\n#define SCREEN_HEIGHT 64  // OLED display height, in pixels\n\n#define OLED_RESET -1        // Reset pin # (or -1 if sharing Arduino reset pin)\n#define SCREEN_ADDRESS 0x3C  ///\u003c See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32\nAdafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, \u0026Wire, OLED_RESET);\n\n#define BITMAP_WIDTH 16\n#define BITMAP_HEIGHT 16\n\nstatic const unsigned char PROGMEM bitmap[] = { 0b00000001, 0b00000000, 0b00000011, 0b10000000, 0b00101001, 0b00101000, 0b00010001, 0b00010000, 0b00101001, 0b00101000, 0b00000101, 0b01000000, 0b01000011, 0b10000100, 0b11111111, 0b11111110, 0b01000011, 0b10000100, 0b00000101, 0b01000000, 0b00101001, 0b00101000, 0b00010001, 0b00010000, 0b00101001, 0b00101000, 0b00000011, 0b10000000, 0b00000001, 0b00000000, 0b00000000, 0b00000000 };\n\nvoid setup() {\n  Serial.begin(9600);\n\n  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally\n  if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {\n    Serial.println(F(\"SSD1306 allocation failed\"));\n    for (;;)\n      ;  // Don't proceed, loop forever\n  }\n\n  display.clearDisplay();\n\n  display.drawBitmap(0, 0, bitmap, BITMAP_WIDTH, BITMAP_HEIGHT, SSD1306_WHITE);\n  display.display();\n}\n\nvoid loop() {\n}\n```\n\n### Arduino + U8g2\n\nIf you are using library [U8g2](https://github.com/olikraus/u8g2):\n\n```cpp\n#include \u003cArduino.h\u003e\n#include \u003cU8g2lib.h\u003e\n#include \u003cWire.h\u003e\n\nU8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE);\n\n#define BITMAP_WIDTH 16\n#define BITMAP_HEIGHT 16\n\nstatic const unsigned char PROGMEM bitmap[] = { 0b10000000, 0b00000000, 0b11000000, 0b00000001, 0b10010100, 0b00010100, 0b10001000, 0b00001000, 0b10010100, 0b00010100, 0b10100000, 0b00000010, 0b11000010, 0b00100001, 0b11111111, 0b01111111, 0b11000010, 0b00100001, 0b10100000, 0b00000010, 0b10010100, 0b00010100, 0b10001000, 0b00001000, 0b10010100, 0b00010100, 0b11000000, 0b00000001, 0b10000000, 0b00000000, 0b00000000, 0b00000000 };\n\nvoid setup(void) {\n  pinMode(9, OUTPUT);\n  digitalWrite(9, 0);  // default output in I2C mode for the SSD1306 test shield: set the i2c adr to 0\n\n  if (!u8g2.begin()) {\n    Serial.println(F(\"SSD1306 allocation failed\"));\n    for (;;)\n      ;  // Don't proceed, loop forever\n  };\n\n  u8g2.clearDisplay();\n  u8g2.drawXBMP(0, 0, BITMAP_WIDTH, BITMAP_HEIGHT, bitmap);\n  u8g2.sendBuffer();\n}\n\nvoid loop(void) {}\n```\n\n## Development\n\n```bash\nnpm ci\nnpm start\n```\n\n## FAQ\n\n### Why my image show wrong?\n\n![Distorted image](./docs/distorted_image.jpg)\n\nFor some LCD displays such as the SSD1306, the image width must be a multiple of 8. If this requirement is not met, you will see a wrong image when displayed.\n\nJust use an image width that is a multiple of 8.\n\n## License\n\n- Bitmap Editor - [MIT](./LICENSE.md)\n- Bootstrap icons - [MIT](https://github.com/twbs/icons/blob/main/LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkolt%2Fbitmap_editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkolt%2Fbitmap_editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkolt%2Fbitmap_editor/lists"}