Toolyard

How to Make ASCII Art From a Photo

Convert the photo

  1. Open the Image to ASCII Art Converter and drop in your photo.
  2. Set the width in characters. 60 to 80 fits a chat message or a code comment; 150 and up keeps faces and fine detail.
  3. Move the contrast and gamma until the subject stands out from the background.
  4. Copy the text, or download it as a TXT file, a PNG image or an HTML page.

The conversion runs in your browser, so the photo is never uploaded.

How a photo becomes characters

The picture is cut into a grid with one cell per character. Each cell gets the character whose amount of ink best matches the cell's brightness: @, # and % cover a lot of the cell and stand for dark areas, : and . cover little and stand for light ones, and a space is the lightest of all. Seen from a distance, the eye blends the characters back into shades of gray.

Characters are about twice as tall as they are wide, so each cell covers a tall strip of the photo rather than a square. Skip that and the art comes out squashed to half its height.

Pick the right photo

  • A clear subject on a plain background. Busy backgrounds turn into noise at ASCII resolution. Remove the background first if it is cluttered.
  • Strong light and shadow. A face lit from one side converts far better than one in flat, even light.
  • Crop tightly. Every column counts, so crop away anything that is not the subject.
  • Logos and line drawings work very well, especially with edges turned on.

The settings that matter

SettingWhat it doesWhen to use it
WidthNumber of characters per lineNarrow for chats and comments, wide for printing or a PNG
Contrast and gammaSpread the tones over more charactersAlmost always; a flat photo uses only a few characters
EdgesDraws outlines with | - / \Faces, buildings, logos, anything with clear shapes
DitheringMixes characters to fake in-between tonesShort character sets and smooth gradients like skies
BackgroundDark text on light or light text on darkMatch where the art will be shown, such as a dark-mode chat

The background setting matters more than it looks. Art made for a white page looks like a negative in a dark-mode app, because the dense characters that meant "dark" now show up bright.

Paste it without breaking it

ASCII art only lines up in a monospaced font, where every character is the same width. In a normal font the columns drift and the picture falls apart.

  • Discord, Slack, GitHub, Reddit and Markdown: put the art between two lines of three backticks (```) to make a code block.
  • Code comments: keep it under about 80 columns so it fits the editor, and check it does not contain the characters that would end the comment, such as */ in C, Java or JavaScript.
  • Word processors and email: set the font to Courier New, Consolas or Menlo and the line spacing to single. If the app might still reflow it, send the PNG instead.
  • Social posts and anywhere else that changes the font: share the PNG.

Chat apps also cap message length (2,000 characters on Discord without Nitro), so a 100-column, 40-line drawing will not fit there. Narrow it until it does.

Tools in this guide

More guides