ASCII Generator for Text and Images
ASCII Generator
This ASCII generator makes ASCII art two ways. In text mode, type a word or a short phrase and it is drawn out of smaller characters using a figlet font, the style used for README headers and terminal banners. In image mode, upload a photo, logo, or illustration and the tool maps each region of the image to a character based on its brightness. Darker areas are represented by dense characters like @ and #, while lighter areas use dots, spaces, or thin punctuation marks. The result is a text-based reproduction of the original image.
Text mode ships six figlet fonts: Standard, Slant, Small, Big, Shadow, and Banner. Pick one from the font list and the output redraws as you type. Image mode has an "output width in characters" input that controls how many characters span the width of the output, and a character set option that controls which characters the brightness is mapped onto. A higher width produces more detail but requires a wider display area, while a lower width creates a compact version suited to narrower text fields.
Either way, you can copy the result to your clipboard or download it as a text file. ASCII art works well in GitHub README files, code comments, terminal banners, Discord and Twitch chat, forum posts, email signatures, and social media bios. To extract readable text from an image instead, try the image to text converter.
_ ____ ____ ___ ___
/ \ / ___| / ___| |_ _| |_ _|
/ _ \ \___ \ | | | | | |
/ ___ \ ___) | | |___ | | | |
/_/ \_\ |____/ \____| |___| |___|How to Convert an Image to ASCII Art
- Select the "Image to ASCII" tab, then drag an image into the upload area or click it to browse for a file. JPG, PNG, GIF, and WebP are accepted.
- The image is read and redrawn as ASCII art below. The conversion runs on a canvas in your browser, so the file is not sent anywhere.
- Set the output width in characters to the widest the art can be where you are pasting it, between 10 and 1000. Wider output samples the image more finely and keeps more detail.
- Pick a character set to set the shading density: Standard for most images, Detailed for photographs, Minimal for logos and line art.
- Copy the art to your clipboard or download it as a text file, then paste it somewhere that renders a monospaced font and preserves the line breaks.
How does the ASCII art generator work?
The two modes work differently. Text mode uses a figlet font, which is a set of templates describing how to draw each letter out of smaller characters, so the word you type is assembled letter by letter into a banner. Image mode analyzes each pixel region of your uploaded image and assigns a character based on brightness. Characters with more visual weight (like @, #, and %) represent darker areas, while lighter characters (like ., :, and spaces) represent brighter areas. When the characters are combined together in a monospaced font, they recreate the shape and shading of the original image. Adjusting the output width changes how many characters are used per row, which directly affects the level of visible detail.
What is the difference between ASCII art and ASCII text?
ASCII art is a picture made of characters. Image mode builds it by measuring the brightness of each cell of your image and printing a character of matching density in its place, so the characters carry tone rather than meaning. Read them and they spell nothing; look at the block from a distance and the picture appears.
ASCII text is lettering made of characters. Text mode builds it by drawing each letter you type from a figlet template, so the output still reads as the word you typed, only larger. There is no brightness to sample, which is why the output width and character set controls belong to image mode and the figlet font list belongs to text mode.
The two share a requirement: both are plain characters arranged in a grid, so both hold their shape only in a monospaced font.
Can I convert text to ASCII art?
Yes, in text mode:
- Select the "Text to ASCII" tab above the tool.
- Type or paste your text into the input field.
- Pick a figlet font from the font list to change the lettering style.
- Click the copy button or download the result as a text file.
- Paste the ASCII art into your destination, making sure it uses a monospaced font for proper alignment.
The output redraws as you type. Short phrases work best: each letter becomes several characters wide, so a long line runs off the edge of most terminals and code blocks. If you want a specific typeface that is not in the font list, set the words in that typeface, export them as an image, and run the image through image mode instead.
Which figlet fonts can I use for text?
Text mode ships six FIGlet fonts:
- Standard - The default figlet style, drawn with underscores, pipes, and slashes. Six rows tall.
- Slant - Standard with the letters sheared to the right for an italic look.
- Small - A four row version of Standard, for banners that need to fit a narrow terminal.
- Big - A taller, wider Standard with heavier strokes.
- Shadow - Letters drawn with a drop shadow, using fewer rows than Standard.
- Banner - Solid block letters built from hash characters.
FIGlet (Frank, Ian and Glenn's Letters) is an open source program from 1991, and these fonts come from its font set. Switching fonts redraws the current text, so you can compare them before copying. For more lettering styles, the big text generator renders these six plus Mini, Block, ANSI Shadow, and Script, all at once.
What image formats are supported?
The tool accepts common image formats including JPG, PNG, GIF, and WebP. For the clearest results, use images with good contrast between the subject and background. Simple logos and high-contrast photos tend to produce the most recognizable ASCII output, while low-contrast or very busy images may lose detail in the conversion.
What output width should I use?
Output width applies to image mode and sets how many characters wide the art is, which is what decides how much of the image survives the conversion. Each character stands for one cell of the image, so a wider setting samples the picture more finely and holds smaller features. The field accepts 10 to 1000 characters and defaults to 150.
The ceiling is the space you are pasting into. A row wider than that space wraps onto the next line and the picture falls apart, even in a monospaced font, so the working rule is the largest width that still fits. The output redraws as you change the value, so you can compare two widths before copying. The table below lists starting widths for common destinations.
Which character set should I pick?
The character set is the list of characters image mode maps brightness onto, ordered from darkest to lightest. Standard uses ten characters (@%#*+=-:. and a space) and suits most images. Detailed uses seventy characters, which gives smoother shading on photographs but produces busier output at small widths. Minimal uses six characters for a coarser, higher-contrast look that reads well on logos and line art. The setting does not apply to text mode, where the figlet font determines which characters are used.
Where can I use ASCII art?
ASCII art can be used anywhere that displays text in a monospaced font. Common uses include GitHub and GitLab README files, terminal startup banners, code comments, forum posts, email signatures, and Discord, Twitch, or Slack messages formatted as code blocks. It is also used for retro-style graphics in games and creative projects. The key requirement is that the display uses a monospaced (fixed-width) font so that all characters align correctly. If the destination uses a proportional font, the art will appear distorted.
Why does my ASCII art look misaligned after pasting?
The destination is rendering it in a proportional font, where an i is narrower than an m. ASCII art only holds its shape when every character takes the same horizontal space, so paste it somewhere the font is monospaced and the whitespace is preserved. On GitHub, Discord, and Slack that means wrapping it in triple backticks; on a web page, a <pre> tag; in an email client or notes app, switching the paragraph style to monospaced or "code".
Line wrapping breaks it the same way. If the art is wider than the space you paste it into, each row wraps onto the next line and the shape falls apart even in a monospaced font. Regenerate at a smaller output width, or pick a narrower figlet font such as Small, when the destination is narrow.
How is this different from the big text generator?
Both draw text out of ASCII characters. This page is the general ASCII generator: it takes text or an image, and image mode has output width and character set controls that text mode has no use for. The big text generator is built around one job, oversized banner lettering, and renders ten styles at once so you can compare them side by side. Use this page when the source is an image, and use that one when you want more lettering styles than the six here.
Character sets and shading density
| Character set | Characters, darkest to lightest | Shades | Suits |
|---|---|---|---|
| Standard | @%#*+=-:. and a space | 10 | Most images, and any output width |
| Detailed | $@B%8&WM#*oahkbdpqwm through ;:,"^`'. and a space | 70 | Photographs and gradients, at 100 characters wide or more |
| Minimal | @#+-. and a space | 6 | Logos, icons, line art, and narrow output |
Where to paste ASCII art
| Destination | Keeping the alignment | Output width |
|---|---|---|
| GitHub or GitLab README | Fence the block with triple backticks | 80 to 120 |
| Terminal banner or login message | Already monospaced, nothing to add | 60 to 100 |
| Code comment | Already monospaced, comment out every line | 60 to 100 |
| Discord, Slack, or Twitch chat | Fence the block with triple backticks | 40 to 60 |
| Forum or issue tracker post | Use the code block the editor provides | 40 to 80 |
| Web page | Wrap it in a <pre> tag | As wide as the container fits |
| Email signature or notes app | Set the paragraph style to monospaced or "code" | 40 to 60 |
| Text file | Download it rather than copying, to keep the line breaks | Any |
Last reviewed: August 2026