← ImgScalePIXELLAB
Tutorial · ASCII Art

How to Make ASCII Art from Any Image

By ImgScale Team  ·  June 2026 · 4 min read · by kizura

ASCII art — images constructed from text characters — is one of the oldest forms of digital art. A well-made ASCII conversion captures the mood of a photo using nothing but keyboard characters. This guide explains how it works and how to get the best results.

Open the ASCII Art Converter
In this guide
  1. How it works
  2. Column width
  3. Character sets
  4. Colored ASCII mode
  5. When to invert
  6. Best source images
  7. Export options

How it works

The converter samples the image at a grid of points — one per column, with rows spaced to account for character aspect ratio (characters are roughly 2× taller than wide, so row count is halved to maintain proportions). For each sample, it calculates luminance using the perceptual formula:

luminance = 0.2126×R + 0.7152×G + 0.0722×B

This weighting matches how the human eye perceives brightness — green contributes most, blue least. The luminance value (0–255) maps to a character in the selected ramp, ordered from darkest to lightest.

Column width

WidthEffectBest for
40–60Blocky, abstractLogos, retro poster look
80–100Readable, classic terminalPortraits, sharing as text
120–160High detailComplex scenes, landscapes
180–220Near-photographicPNG export only, maximum fidelity

The 80-column tradition: 80 columns is the classic terminal width. ASCII art designed at 80 columns pastes cleanly into any terminal, code comment, or README.

Character sets

Classic: .:-=+*#%@

9 characters, strong contrast. The standard ASCII art look from 1980s bulletin boards. Works at 80–120 columns. Best for faces and simple scenes.

Detailed: 67-character ramp

Fine-grained luminance steps for maximum tonal range. Better at capturing subtle gradients. Use at 100+ columns for best results.

Blocks: ░▒▓█

Unicode block elements for a graphic, pixelated look. Great for bold portraits and graphic design use.

Custom ramp

Type any characters, darkest left to lightest right. Try 01 for binary aesthetic, or your brand name as the ramp.

Colored ASCII mode

Each character is drawn in the color of its source pixel rather than flat ink. The result looks like a photo rendered in text with full color. Colored ASCII is best exported as PNG — the text copy has no color information.

Best combination: Colored ASCII + Detailed ramp + 140–180 columns + dark background PNG export. The result is often striking enough to share as standalone art.

When to invert brightness

Flip the ramp so dense characters fall on bright areas instead of dark ones. Use invert when: printing on white paper; exporting with a light background; or when your subject is light-on-dark (snow scene, white text).

Best source images

Export options

Open ASCII Art Converter — free

Related: Turn a Photo into Pixel Art · Extract a Color Palette

What makes a photo ASCII-friendly

ASCII art is brutal downsampling: your image becomes perhaps 80–120 “pixels” wide, each drawn from a dozen brightness levels. Images that survive this have a strong silhouette (portraits against plain walls, a cat on a windowsill, logos, landmarks), broad tonal separation between subject and background, and little fine texture that would turn to noise. Busy scenes — foliage, crowds, patterned clothing — average out into grey mush. If your source is borderline, raise the contrast first and try a tighter crop around the subject; framing does more for ASCII output than any converter setting.

Character ramps, and why dark mode flips them

Converters map brightness onto a ramp of characters ordered by ink density — the classic short ramp is  .:-=+*#%@, from empty space to nearly solid. That ordering silently assumes dark ink on a light background. Paste the same art into a dark terminal or Discord’s dark theme and the tones invert: your subject’s shadows become the brightest glyph clusters. The fix is simply reversing the ramp (or toggling “invert” in the converter) for dark destinations. Longer ramps of 60+ characters buy smoother gradients but reproduce less reliably across fonts; the short ramp is short because it is portable.

The 2:1 correction, and where ASCII survives

Monospace characters are roughly twice as tall as they are wide, so a converter that maps one pixel to one character produces art stretched to double height. Good tools (the PixelLab converter included) pre-squash the image vertically by ~0.5 to compensate — if your output looks like a funhouse mirror, that correction is what is missing. The other survival rule is monospace or death: ASCII art holds together only where every character is equal-width, which means code blocks (wrap it in triple backticks on Discord/Slack/GitHub), terminals, <pre> tags, and plain-text email — and falls apart in Word, Instagram captions and anywhere proportional fonts live. When you need the art in a proportional-font world, screenshot it: the pixels don’t care about typography.