Image to ASCII Art Converter — Text, Braille & Block Art
Convert any image to ASCII or Unicode block art with adjustable width, character ramp and optional colour, then copy or download it.
Turn any photo, logo or screenshot into text art made of letters, symbols, Braille dots or Unicode blocks. Choose one of eight conversion methods, set how many characters wide it should be, tune the tone curve, and optionally keep the original colours. Copy the result, download it as text or HTML, or render it to a PNG, all without the image leaving your browser.
How to convert an image to ASCII art
- Drop an image on the page, click to choose one, or press Ctrl+V to paste a picture you copied.
- Pick one of the eight methods and set the width anywhere from 20 to 300 characters.
- Adjust brightness, contrast and gamma, choose a ramp or type your own, and set Colour to HTML if you want the original colours kept.
- Copy the text, or download it as .txt, a coloured .html page, or a PNG image.
How a picture becomes characters
The converter divides the image into a grid of cells, one per output character, and averages each cell's pixels into a single brightness value. You choose how that value is computed: Rec. 601 or Rec. 709 luma weights, a plain channel average, or HSL lightness. Brightness, contrast and a gamma curve are applied next, and an optional sharpen pass restores edges that averaging softened.
Rows are computed from the columns and an aspect factor, by default one half, because a monospaced character is roughly twice as tall as it is wide; without that correction faces come out stretched. Invert swaps the ramp for art that will be viewed as light text on a dark background.
Eight ways to turn tone into text
The luminance ramp maps each cell straight onto a character. Floyd–Steinberg and Atkinson dithering carry each cell's rounding error into its neighbours, so a short ramp still renders smooth gradients; the ordered Bayer option trades that for a regular cross-hatch texture. Edge lines runs a Sobel filter and draws strong boundaries as |, /, - and \ strokes, which makes outlines read clearly at small widths.
Shape matching renders every ramp character in the preview font and picks, per cell, the glyph whose actual shape best matches the pixels beneath it rather than only its darkness. Braille packs a two-by-four grid of dots into each character for up to eight times the detail, and half blocks split every cell into an upper and a lower pixel, each with its own colour when colour output is on.
Ramps and colour
Three presets ship: a ten-character ramp for bold, poster-like results; the seventy-character ramp that has circulated since the early days of text art for smooth gradients; and the shade blocks (light, medium, dark and full block) that look like a low-resolution bitmap. You can also type your own ramp, ordered from lightest to darkest.
Colour mode keeps the average colour of each cell. Set to HTML, the preview wraps every character in a coloured span on a black background, which browsers and rich-text editors render faithfully. The .html download is always coloured, even when the preview shows plain text, while Copy and the .txt file always hold plain characters because plain text cannot store colour.
Tuning for a good result
Photos with a clear subject against a plain background convert best; busy scenes turn into visual noise at low widths. Nudge contrast up when the picture is flat and the ramp only uses its middle characters, and nudge brightness when a dark photo becomes a wall of dense glyphs. Widths around 80 to 120 columns balance detail and readability for most portraits, while a logo can look crisp at 40.
The preview font size only affects what you see on the page, not the output; use it to zoom in on a detail or to check that the whole picture fits your screen before copying.
Outputs
- Copy puts the plain text on the clipboard for pasting into chats, comments and code.
- Download .txt saves the plain version; use a monospaced font when viewing it.
- Download .html saves the coloured version as a standalone page.
- Download PNG draws the characters in white on a black canvas, so the art can be shared as an image with its spacing intact.
Pasting ASCII art into Discord, Reddit and GitHub
- Wrap the art in a fenced code block, with three backticks on the line above and the line below, so the site renders it in a monospaced font and every column lines up.
- Copy and Download .txt carry plain characters only; colour survives only in the downloaded .html file, which chat apps and forums do not render.
- The PNG download draws white characters on a black background, the dependable way to post the art where code blocks are unavailable.
- Chat panes, and phone screens especially, are narrow: lines wider than the message area wrap and break the picture, so 40 to 60 characters travels better than 120.
- Braille and half-block output relies on Unicode characters that some fonts draw at a different width; if alignment drifts after pasting, switch to a plain character ramp.
Practical limits
Width runs from 20 to 300 characters; beyond that most viewers wrap lines and the art breaks. Images larger than 4096 pixels on the long edge are downscaled before sampling, which does not change the result because the cells average many pixels anyway. Conversion is debounced so dragging a slider feels immediate even for large photos.
Questions people ask about Image to ASCII Art
- Why does my output look squashed or stretched?
- Adjust the aspect slider. Terminals and editors use fonts with different width-to-height ratios; one half suits most, but a font with narrow glyphs may need a value closer to 0.4 and a wide one closer to 0.6.
- Which method gives the most detail?
- Braille dots resolve the finest detail because every character carries eight independent dots. Shape matching gives the crispest outlines with ordinary characters, and half blocks with colour produce the most photographic result for terminals and web pages.
- Can I paste an image from the clipboard?
- Yes. With the page focused, press Ctrl+V or Cmd+V after copying an image and it is loaded as if you had dropped the file.
- Is the image uploaded anywhere?
- No. Decoding, sampling and rendering happen in the tab with the Canvas API; the page makes no network requests with your data.
- Why is the output taller than the picture?
- The row count depends on the aspect factor. If lines look too tall in your viewer, raise the aspect value slightly, which reduces the number of rows for the same number of columns.
- How do I keep ASCII art aligned when I paste it into Discord or Reddit?
- Paste it inside a code block: three backticks on their own line before and after the art. That switches the text to a monospaced font where every character takes the same width. Keep the width modest so long lines do not wrap, and remember chat apps drop colour, so post the PNG when the look matters.
- What image formats can I convert?
- Any image your browser can decode, because the picker accepts every image type and the page decodes it with createImageBitmap. PNG, JPEG, WebP, GIF and AVIF work in current browsers; an animated GIF is converted from a single frame, and formats such as HEIC depend on your browser's own support.
- Can I use the ASCII art I make commercially?
- BrakeTools' terms claim no ownership of the text art you create and add no watermark to it; they only ask that you process material you have the right to use. So the real question is your source image: art made from your own photo or logo is yours to use, while a picture of someone else's copyrighted work carries that work's rights along with it.
Related tools on BrakeTools
- Image Resizer — Resize images by longest edge, exact dimensions or percentage, with letterbox or stretch fitting.
- Image Cropper — Crop a batch of images to an exact rectangle or a locked aspect ratio, then export as PNG, JPEG, WebP or AVIF.
- Background Remover — Full-resolution background removal with on-device CPU inference, exported as a transparent PNG.
- Meme Caption Frame — Put a caption bar above any image or video (or classic Impact top/bottom text) and export a PNG or a video with the original audio.
- SVG Vectorizer — Convert a raster logo into a clean, layered SVG, no subscription required.
Content reviewed 2026-09-27.