ASCII Generator for Text and Images
Or paste an image with Ctrl+V
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 has 76 figlet fonts, from Standard and Slant to Doom, Star Wars, Graffiti, and ANSI Shadow. Pick one from the font list and the output redraws as you type, or open Preview all fonts to see your text in every one of them. Image mode has an "output width in characters" input that controls how many characters span the width of the output, a character set option that controls which characters the brightness is mapped onto, and brightness, contrast, invert, and edge tracing controls that adjust the image before it is converted. 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, download it as a text file, or download it as a PNG image. 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. If the subject is lost in a dark or flat image, raise the brightness or contrast.
- 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. Download it as a PNG instead for places that only show an image.
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 or a PNG image.
- 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 has 76 FIGlet fonts. The six most used sit at the top of the font list:
- 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.
The rest follow in alphabetical order, including Doom, Star Wars, Graffiti, Colossal, Isometric, 3D ASCII, and fonts such as ANSI Shadow, ANSI Regular, and Bloody that draw with block characters (█, ░) rather than plain punctuation. Preview all fonts, under the output, draws your text in every font with a copy button for each, so you can compare them without switching one at a time.
FIGlet (Frank, Ian and Glenn's Letters) is an open source program from 1991, and these fonts come from its font set and the collection maintained by the figlet.js project.
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.
How do I get a clearer result from a dark or busy photo?
Image mode turns brightness into characters, so a photo whose subject and background are close in tone comes out as an even texture. The adjustments in the settings change the image before it is converted:
- Brightness lightens or darkens every part of the image. Raise it for an underexposed photo that comes out as a block of
@. - Contrast pushes tones away from mid gray, which separates a subject from a similar background. At 100 every cell is either black or white, which works as a threshold for logos and signatures.
- Invert swaps dark and light, for art that will be shown as light text on a dark background, such as most terminals and Discord in dark mode.
- Trace Edges Only, under More options, keeps the outlines and leaves flat areas blank, which reads better than shading for faces, drawings, and objects against a plain background.
Cropping the image to the subject before uploading also helps, since every character of width then goes to the part you care about.
Where can I use ASCII art?
Anywhere that shows text in a monospaced font and keeps your line breaks:
- Terminals - Login messages (
/etc/motd), shell startup banners, and the banner a command line tool prints when it starts. Terminals default to 80 columns, so art meant for one should stay at 80 characters wide or less. - README files - On GitHub and GitLab, put the art inside a fenced code block (a line of three backticks before and after it). Outside a code block Markdown collapses the spaces and the art falls apart.
- Discord, Slack, and Teams - Wrap the art in triple backticks to send it as a code block. A Discord message holds 2,000 characters, line breaks included, so a large image at a wide output width will not fit; on a phone a code block wraps much sooner than on a desktop, at roughly 40 to 50 characters.
- Code comments, forum posts, and issue trackers - Use the code block the editor provides, or comment out every line in source code.
Where the text is shown in a proportional font, such as most social media posts, profile bios, and chat apps without code blocks, the art cannot keep its shape. Download it as a PNG image and post the picture instead. The table below lists starting widths for common destinations.
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".
Art drawn with block characters, such as the ANSI Shadow and Bloody fonts, needs a font that has those characters at the same width as the letters. Most code fonts do. Where the font lacks them, the app borrows them from another font whose width can differ, which shifts each row. Plain fonts such as Standard and Doom avoid this.
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, offers all 76 figlet fonts, and exports as text or PNG. The big text generator is built around one job, oversized banner lettering, and shows ten popular styles at once as soon as you type, with no font to pick. Use this page when the source is an image or you want a particular font, and use that one for a quick banner.
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 | Up to 80, the default terminal width |
| 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 |
| Social media post or profile | Proportional font, so download it as a PNG and post the image | Any |
| Text file | Download it rather than copying, to keep the line breaks | Any |
Last reviewed: October 2026