image2cpp is the fastest free in-browser converter that turns any PNG, JPG or BMP into a paste-ready C++ byte array for SSD1306, SH1106, ST7735, ILI9341, Waveshare e-paper and Nokia 5110. Drag, drop, tweak, copy — the modern image2cpp online tool, ad-free and actively maintained.
image2cpp turns any picture into a paste-ready C++ array for your Arduino, ESP32 or RP2040 sketch — in under 30 seconds, with zero installs and zero upload.
Every byte of your image is processed locally with the Canvas API. Nothing is uploaded. Use image2cpp on a flight, on a closed lab network, or with confidential product art — it just works.
SSD1306, SH1106, ST7735, ILI9341, Waveshare e-paper, Nokia 5110 — image2cpp ships pre-tuned profiles for the displays makers actually use. Adafruit GFX, u8g2, LVGL, and raw byte output all supported.
No signup. No watermark. No "10 conversions per day" wall. image2cpp is run by hjLabs.in as a free public utility for the maker community. A Pro tier (batch + team features) exists at $5/mo, but the core converter is and will stay free.
The original image2cpp by javl (javl.github.io/image2cpp) is the OG tool that made bitmap-on-Arduino easy. pixel.hjlabs.in is a modern rebuild — same core idea, more displays, no ads, faster preview. Both run in your browser, both are free.
| Capability | image2cpp (this site) | Original javl/image2cpp |
|---|---|---|
| Runs 100% in browser | Yes | Yes |
| Free, no signup | Yes | Yes |
| Ad-free interface | Yes | No |
| Live OLED preview simulation | Yes | Static only |
| Color TFT (ST7735/ILI9341 RGB565) | Yes | Monochrome only |
| Waveshare 3-color e-paper | Yes | No |
| LVGL C array output | Yes | No |
| Batch / multi-file upload | Yes | Single file |
| Atkinson dithering | Yes | No |
| Actively maintained | 2026 (monthly updates) | 2018 (archived) |
| Source on GitHub | hjlabs.in-image2cpp | javl/image2cpp |
If you used the original image2cpp before, the workflow here is identical — drop image, pick display, copy array. The differences are extra display profiles, no ads, and a faster preview. Try image2cpp now.
A 1-bit SSD1306 dither only looks as good as the source. If your photo is dark, soft, or noisy, run it through the free AI photo enhancer at enhance.hjlabs.in first — it fixes lighting, sharpens edges and boosts contrast in 10 seconds (Gemini-powered, no signup). Then drop the enhanced PNG back into image2cpp for a crisper Floyd-Steinberg result on your OLED. For product or marketing visuals headed to an e-paper signboard, the sister marketing image generator creates WhatsApp/Instagram-ready creatives from a text prompt.
Open AI Image Enhancer →Works with any monochrome or color display that accepts a byte array bitmap. Pre-tuned output formats for the most popular Arduino & ESP32 screens.
The most popular Arduino OLED. 1-bit horizontal output, Adafruit GFX or u8g2 format.
Slim OLED variant. Ideal for status bars, clocks, and sensor readouts.
Common SSD1306 alternative. Same output format, u8g2 native support.
RGB565 color TFT. Generates 2-bytes-per-pixel PROGMEM arrays.
Large TFT for ESP32 projects. RGB565 or RGB888 output supported.
Red/black/white 3-color e-ink. Generates per-color bitmap planes.
Retro 84×48 monochrome LCD. Vertical 1-bit byte layout.
Any width & height up to 1024×1024. Supply your own dimensions.
From raw image to Arduino-ready code in under 30 seconds.
Drag & drop any PNG, JPG, BMP, GIF, or SVG. Multiple files at once for sprite sheets and animations.
Set screen size, pick a dithering algorithm, adjust threshold, rotate, flip, invert. Live OLED simulation shows exactly what your display will render.
Get Adafruit GFX, u8g2, plain byte array, or XBM output. Copy to clipboard or download a ready-to-include .h header file.
// 'arrow', 16x16px
const unsigned char epd_bitmap_arrow [] PROGMEM = {
0x00, 0x00, 0x01, 0x80, 0x03, 0xc0, 0x07, 0xe0,
0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe,
0xff, 0xff, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0,
0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x00, 0x00
};
// Draw it on Adafruit SSD1306:
display.drawBitmap(56, 24, epd_bitmap_arrow, 16, 16, WHITE);
display.display();
Embedded work doesn’t end at the OLED. Free browser-based utilities for the rest of your stack.
Building an ESP32, Pi Pico W, or Arduino-with-WiFi project that talks to a backend? Pair image2cpp with our sister site fmt.hjlabs.in — a suite of 15 free, 100% client-side developer tools on the same Cloudflare edge network. Most-used by embedded developers:
data: URIs for the OLED splash screen, or decoding LoRaWAN sensor payloads.All 15 tools at fmt.hjlabs.in are free, run entirely client-side, and never send your data to any server — the same privacy guarantee as image2cpp.
Shipping a hardware product to Indian customers? If your IoT app, ESP32 device, or hardware product captures any user data (Wi-Fi credentials, telemetry, location, account info) and serves Indian users, you need a privacy policy compliant with India’s Digital Personal Data Protection Act 2023. Our sister tool compliance.hjlabs.in generates a DPDPA-compliant policy free in 2 minutes — built specifically for Indian makers, hardware startups, and IoT companies.
Open the image2cpp converter, drop your image, and get Arduino-ready C++ in seconds. New to embedded displays? Read our step-by-step Arduino OLED tutorial for a complete SSD1306 wiring + sketch walkthrough. Need to clean up a fuzzy source photo before dithering? Use the free AI photo enhancer — it sharpens and boosts contrast so your 128×64 SSD1306 bitmap actually looks readable.
Launch Converter →