This WS2812 LED Color Array Converter is tool that lets users upload or drag-and-drop an image, select a rectangular area, apply color filters (grayscale, sepia, invert, brightness), and convert the selected pixels into various RGB array formats (decimal, hex, or simple string). It provides a live preview of the selected area, displays the generated color array and its byte size, and supports sending the data directly to an Arduino via a serial connection. The interface includes interactive controls for selection size, filters, output format, and live sending on selection move, making it a user-friendly utility for preparing LED color data. For connection with Arduino it uses Serial API. Also source code for Arduino is included.
https://www.ctvrtky.info/wp-content/uploads/2025/07/Pixel-Art-Editor.html

Code used in Arduino
#include <FastLED.h>
#define LED_PIN 5
#define NUM_LEDS 64 // Set to your number of LEDs
#define BRIGHTNESS 128
#define LED_TYPE WS2812
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
void setup() {
Serial.begin(115200);
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness(BRIGHTNESS);
FastLED.clear();
FastLED.show();
}
void loop() {
int bytesNeeded = NUM_LEDS * 3;
static int bytesRead = 0;
static uint8_t colorBuffer[NUM_LEDS * 3];
while (Serial.available() > 0 && bytesRead < bytesNeeded) {
colorBuffer[bytesRead++] = Serial.read();
}
if (bytesRead == bytesNeeded) {
// Update LEDs
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = CRGB(colorBuffer[i * 3], colorBuffer[i * 3 + 1], colorBuffer[i * 3 + 2]);
}
FastLED.show();
bytesRead = 0; // Reset for next pattern
}
}