Encode any file into an animated image. Optionally encrypt it first.
AES-256-GCM Reed-Solomon ECC 100% client-side no upload, no tracking
📄
Drop a file here, or click to browse
Recommended max ≈ 80 KB for fast GIF output
Optional — leave empty for no encryption. AES-256-GCM via PBKDF2 (150 000 iterations)
Processing… 0%
Frames
Encoded bytes
Cells/frame
Encoded GIF
🎞️
Drop your .gif here, or click to browse
Decoding… 0%
How decoding works: The GIF is parsed frame-by-frame in your browser, pixels are decoded back to bytes via color + symbol detection, Reed-Solomon error correction is applied per block. If the data was encrypted, AES-256-GCM decryption restores the original file. Nothing leaves your device.

CimBar (Color Icon Matrix Barcode) encodes binary data into a grid of colored geometric symbols. This tool uses a simplified variant: each cell encodes 7 bits — 3 bits for color (8 colors) and 4 bits for symbol shape (16 icons). Before encoding, your file is encrypted with AES-256-GCM, and each frame's data is protected by Reed-Solomon error correction (32 ECC bytes per 255-byte block, correcting up to 16 byte errors per block).

01
Encrypt
AES-256-GCM via WebCrypto. PBKDF2 key derivation, 150k iterations, random salt + IV per file.
02
ECC
Reed-Solomon RS(255, 223) applied to each 255-byte block. Corrects up to 16 byte errors per block.
03
Map
ECC'd bytes mapped to cells: 3 bits → color (8), 4 bits → symbol (16) = 7 bits per cell.
04
Animate
Frames rendered to Canvas and compiled into GIF89a using a built-in pure-JS LZW encoder.
05
Transmit
Share the GIF publicly. Without the passphrase the data is fully opaque.
06
Private
100% client-side. All crypto and encoding runs in your browser. No server, no storage, no analytics.

Capacity example (256×256 frame):
32×32 cells = 1 024 cells. Minus 18 finder cells = 1 006 usable. 1 006 × 7 bits = 7 042 bits = 880 raw bytes. After RS(255,223): ~770 data bytes per frame. A 50 KB file needs ≈ 67 frames.
GIF palette limitation: GIF supports only 256 colors per frame. The palette is tuned for CimBar's 8 base colors and their variants, so color fidelity is good but not pixel-perfect. Reed-Solomon corrects the resulting quantization errors during decode.