ASCII Art Character Sets Explained

An ASCII character set (or "ramp") is the alphabet of dark and light characters used to redraw an image as text. Different ramps give very different looks. Here's what each one is good for.

Classic

@ % # * + = - : .  (space)

The traditional terminal-style ramp. Eleven characters, well-balanced from dense (@) to sparse (space). Works well for almost any image — portraits, landscapes, logos. Start here if you're not sure.

Detailed

A 70-character ramp from very dense ASCII ($@B%8&WM#*) to extremely sparse (:,"^`'. ). Use when you want maximum tonal range — typically for photographic content rendered at high width (200+ chars). Looks closer to a photo print at distance.

Blocks

█ ▓ ▒ ░  (space)

Five Unicode block characters of decreasing density. Gives a chunky, retro Game-Boy or Teletext feel. Particularly good for logos, low-resolution renders and anything where you want recognisable blocks instead of letters.

Lines

─ │ ┼ ╋ ╂ ╀ ╁  (space)

Unicode box-drawing characters. Creates a wireframe, vector-style look — almost technical-drawing. Great for architectural photos, product shots, or anything with strong geometric lines.

Binary

1 0  (space)

Just zeros and ones. Extreme but recognisable — perfect for any "Matrix" or hacker-aesthetic context. Best at width 80-120 chars; loses detail at lower widths.

Density

◼ ◾ ▪ ▫ ▢ ▢ ▢  (space)

Geometric Unicode dots and small squares. Halfway between Blocks and Classic — recognisable as text but reads as image. Works well in editorial print contexts where you want ASCII to feel intentional rather than nostalgic.

Hatching

╫ ╪ ╬ ║ ═ │ ─  (space)

Crosshatch box-drawing characters that mimic engraving and pen-and-ink shading. Good for portraits and illustration-style renders. Try at width 100-150 for best balance of detail and texture.

Custom

Type your own ramp from dense to sparse. Examples:

Custom ramps are sorted dark-to-light internally, so put the densest character first.

Edge detection mode

Instead of mapping brightness to characters, edge detection uses a Sobel filter to find outlines, then maps each edge angle to a directional character (/ \ | _). Use this for line-art ASCII rather than tonal shading — great for portraits where you want crisp facial outlines, and for architecture / product shots with strong geometric edges.

Picking a width

Character width controls resolution. Rough guide:

Try it

Open ASCII tool →