Image to ASCII Art Converter
Convert any photo into ASCII art. Adjust the width, character set, and color mode, then export as text or PNG.
Upload a photo and watch it rendered as ASCII art using a configurable character ramp. Choose from Standard, Detailed, Blocks, or Minimal ramps, adjust output width up to 200 columns, toggle invert for light-on-dark output, and download the result as a plain-text file or a rendered PNG. All processing happens locally in your browser, nothing is sent to a server.
ASCII art maps each cell of an image to a character based on brightness. The tool divides the image into a grid of columns x rows cells, samples the average color of each cell by downscaling the image on a canvas, and maps luminance (0.299*R + 0.587*G + 0.114*B) to a character in the chosen ramp. Characters near the start of the ramp (spaces, dots) represent dark areas; characters near the end (#, @) represent bright areas. Toggling Invert reverses the mapping, which is useful when the output will be displayed as light text on a dark background.
Terminal characters are roughly twice as tall as they are wide. Without correction, converting a square image would produce a vertically stretched rectangle of text. The tool accounts for this with a character aspect ratio of 0.5, computing rows as round(columns * (imageHeight / imageWidth) * 0.5), so the output proportions match the original image when rendered in a monospace font.
In color mode each character keeps the average color of its image cell. This has no visible effect on the plain-text copy, but the PNG download renders each character in its sampled color on a black background, producing a stylized, colorized image. The Detailed ramp contains around 90 characters and preserves finer gradients; the Blocks ramp uses filled Unicode squares for a heavier, graphic look; Minimal ( .*#@) produces bold high-contrast art with only four levels.
- 1
Upload an image
Click the upload zone and pick any PNG, JPEG, GIF, or WebP file. A small preview appears immediately.
- 2
Adjust the controls
Set output width (40-200 characters), pick a character ramp, toggle Invert for light-on-dark, and enable color mode if you want the PNG download to carry per-character color.
- 3
Copy or download the result
Copy the ASCII text to clipboard, download a plain .txt file for use in terminals or documents, or download a rendered PNG that captures the monospace layout as an image.
Profile picture art
Convert a headshot to ASCII art for a terminal welcome screen, README header, or retro-styled bio page.
GitHub README banners
Generate ASCII from a logo image and paste it into a code block in README.md for a distinctive project header.
Retro print design
Download the PNG render and use it as a texture or background in a print layout, poster, or merchandise design.
Creative coding demos
Grab the plain-text output to feed into a canvas-based animation, a terminal demo, or a text-rendering shader.
Is my image sent to any server?
No. The file is read via FileReader in your browser, processed on an offscreen canvas, and never transmitted. Everything stays on your device.
Why does the output look stretched in some editors?
ASCII art assumes a monospace font where each character is roughly half as tall as it is wide. If you paste the output into an editor with a proportional font, characters will appear too wide and the image will look squashed. Render or view in any monospace font (Courier, Consolas, Fira Code) for correct proportions.
What is the Invert toggle for?
By default, bright pixels map to dense characters (@, #) and dark pixels map to spaces. Inverted mode reverses this, so dark pixels map to dense characters. Use it when you plan to display the ASCII on a light background, or when the source image has a bright subject on a dark background.
How does the PNG download differ from the text output?
The PNG download renders the ASCII characters onto a canvas using a small monospace font, so the layout is captured as a raster image. In color mode, each character is drawn in the average color of its source cell. The plain-text copy is always monochrome regardless of color mode.
Which character set should I use?
Standard works well for most photos. Detailed preserves more brightness levels and suits images with subtle gradients. Blocks gives a heavier, graphic look closer to a mosaic. Minimal (four characters) is best for high-contrast subjects like logos or silhouettes.