Tools

ASCII Image Converter

WORKING

Drop an image, get it back as ASCII art rendered in the site's own amber terminal aesthetic — sampled entirely on a 2D canvas, no upload.

Same underlying idea as the shader-driven scenes in /lab — a luminance value maps to a position on a density ramp, ' .:-=+*#%@', dark to dense — but with a plain <canvas> doing the sampling instead of a GLSL glyph atlas. The image never leaves the browser: URL.createObjectURL hands the <img> element a local blob URL, and everything downstream is drawImage + getImageData.

Monospace glyphs are roughly twice as tall as wide, so the row count is corrected by a fixed aspect ratio before sampling — skip that and every image comes out stretched vertically.

Built
Category
portfolio
Stack
JavaScript · Canvas 2D
Details
Draws the source image into an offscreen canvas scaled down to N columns, reads the pixel buffer with getImageData, and maps each cell's luminance to a character on a 10-step density ramp.
Model
Claude Sonnet 5
Source
View source →

HOMELAB

navigate · open · esc close