Skip to main content
ASCII Art Generator logoASCII Art Generator

How to Convert Images to ASCII Art

A Complete Step-by-Step Guide

Converting an image to ASCII art means translating a picture into a grid of characters. It needs preformatted text and a suitable font to stay aligned.

Step 1: Choose the Right Image

Choose a source with a clear subject and distinct light and dark areas. Crop a busy background before uploading; small details may disappear in a character grid.

  • Choose the feature you want to keep, such as a face or a logo outline.
  • Crop around it in an image editor; retain an unedited source for comparison.
  • Check whether its identity depends on small lettering, texture or color. Those details may not survive as plain text.
  • Use a source you have permission to reproduce; conversion does not grant rights.

Step 2: Upload Your Image

Open the image editor. In Upload, select or drop a file, or paste an image URL and select Load URL. Choose one image up to 10 MiB (10,485,760 bytes) and 24 million decoded pixels. Use still PNG, JPG, single-frame GIF, WebP or uncompressed BMP. Animated PNG/WebP, multi-frame GIF and user SVG/other formats are rejected before image decoding; export one frame to a still PNG first. Bundled Twemoji SVG artwork is a trusted site-asset exception.

  • Drag and Drop: Simply drag your image file from your computer directly onto the upload area
  • File Selection: Click the upload area to browse and select a file from your computer
  • URL Import: Paste an image URL and select Load URL. The host must allow browser access; use a local file if the request is blocked.

Technical Requirements and Best Practices:

  • Supported Formats:
    • PNG: Can retain transparency in the source
    • JPG: A compressed format without transparency
    • GIF: Single-frame files only; export one frame from an animation to PNG first
  • File Size:
    • Choose one image up to 10 MiB (10,485,760 bytes) and 24 million decoded pixels.
  • Image Dimensions:
    • Conversion allows at most 40,000 sampling cells and 1,000 sampling rows. Reduce width or resize/crop the input if a limit is exceeded.
    • Crop to the subject before uploading. More source pixels do not guarantee more detail at a small output width.

Step 3: Choose Your Settings

In Options, choose Generation Mode and width, then start with neutral adjustments. Change one control at a time and compare the generated result before keeping a change.

Standard and Character Optimization return plain text, not source-colored characters. Edge Detection uses Unicode line symbols. Color adjustments can change the chosen symbols; only Emoji Mosaic selects colored emoji glyphs. It does not preserve exact source colors.

Brightness, Contrast, Saturation, Hue Rotation, Sepia and Invert Colors process the source in all four modes. Neutral settings are 100% brightness, contrast and saturation, 0 degrees hue, 0% sepia and inversion off. A change may leave the same output symbols if it does not cross a matching threshold.

Standard ASCII Art
Character Set and Dithering. Maps luminance to a dark-to-light character ramp.
Edge Detection Only
Edge Intensity. Uses its own directional symbols; Character Set and Dithering do not apply. Inverting an image can leave the same outlines because edge strength and line orientation are unchanged.
Character Optimization
Character Set and Dithering. Matches each image cell to rendered glyphs. More candidates can take longer.
Emoji Mosaic
Emoji Size, Emoji Set and Transparent Pixel Emoji. Sampling Width is the resized pixel width; columns equal width divided by Emoji Size, rounded up. Dithering and Character Set do not apply.

Choose a destination and keep settings

Choose Output destination before fine-tuning: README / terminal starts at 80 columns and 60 lines; Compact chat starts at 40 columns and 20 lines. These are starting budgets, not platform limits. Shareable PNG is the image option; Custom / advanced leaves you in control.

Generate the full Result, then select Copy Markdown code block. Paste the whole block into a Markdown editor and inspect its rendered view for wrapping, missing spaces and unsupported glyphs. If copying is denied, select the displayed manual-copy block or download TXT. Use PNG instead when text layout cannot be preserved.

Keep settings in this URL updates the address with selected image settings, not the source image or output. Custom characters and transparent-cell symbols are excluded. Bookmark or copy that address to reopen those settings.

Save settings on this device is separate: open it and select Save settings locally. There is one slot per editor in this browser; confirm Save or replace to write that slot (Cancel leaves it unchanged). On return, choose your image again to unlock Options, then open Options and select Load saved settings explicitly.Use Delete saved settings, then confirm deletion to clear the slot. Images, URLs, filenames, input text, output, custom characters and transparent-cell symbols are excluded. Browser storage deletion or eviction removes the slot; it does not sync to an account or save artwork.

Download your work before leaving. The editors warn before following a link with unexported work and let you keep editing or download TXT without leaving. Reload/close/history warnings depend on browser support and may not appear; Back is not a recovery feature. Offline help explains which cached resources remain available.

Basic Settings

  • Output Width: Controls the detail level and final size
    • Try 40 columns for a compact comparison and 80 for a wider one; neither is a platform guarantee.
    • More columns sample more cells but need a wider text area. The default custom width is 100.
    • Emoji Sampling Width is the resized pixel width, not the final number of emoji columns.
  • Character Set: Determines the visual style and detail level
    • Standard: @%#*+=-:. (ending with a space), the default ramp
    • Detailed: A longer printable-ASCII ramp with more mapping levels
    • Simple: #@%*+=-:. (ending with a space), a printable-ASCII ramp
    • Blocks: █▓▒░ (ending with a space), Unicode shading characters
    • Custom: Create your own character set for unique styles

Advanced Adjustments

  • Brightness (0-200%):
    • Below 100%: Darkens the image, intensifies shadows
    • Above 100%: Brightens the image; highlights can lose detail
    • Recommended: Start at 100% and adjust based on preview
  • Contrast (0-200%):
    • Below 100%: Reduces difference between light and dark areas
    • Above 100%: Pushes tones farther from the midpoint; shadows or highlights can merge
    • Start at 100%. Compare the rose example at 100% and 140% in the photo guide rather than assuming more contrast is better.
  • Dithering Options:
    • None: Direct mapping without a dithering step
    • Floyd-Steinberg: Distributes quantization error to neighboring pixels
    • Ordered: Uses a repeating threshold pattern; compare texture in smooth areas

First check for a monospace font, preserved spaces and disabled wrapping. Character modes already compensate approximately for tall text cells with a fixed 0.55 row factor. Font and line spacing can still change apparent proportions; there is no separate aspect-ratio control. Reduce width to fit a wrapping text area, not to correct vertical stretching. Use PNG when the destination cannot preserve text layout.

Step 4: Generate and Save Your ASCII Art

In Options, choose a mode and width, then select Generate ASCII Art. Open Advanced image settings for adjustments, character sets and mode-specific controls. In Result, use Copy, Download TXT or Download PNG. Generate again after changing settings to update the full result.

ASCII Preview is reduced: up to 60 columns for character modes, or a fixed 32-pixel sampling width for Emoji Mosaic. Generate the full result to apply the selected Output Width or Sampling Width.

Copy and TXT preserve characters, spaces and line breaks, not the receiving app's styling. Use a fenced code block in a README or chat, or a preformatted monospace text area. Keep leading/trailing spaces and disable wrapping. Unicode blocks, lines and emoji need suitable fonts and may occupy different widths.

PNG renders the text onto its own canvas; it is not a screenshot of the preview. Use it when the destination changes text spacing. The image editor uses the selected display font at 14 px; example cards use 12 px monospace. PNG always uses black text on white with at least 1.2 line spacing and 20 px padding. Screen theme and preview zoom do not change the file. Invert Colors changes image processing, not the PNG background. Emoji glyph colors depend on browser fonts. Copy needs browser clipboard access, usually on HTTPS or localhost. If it is denied, select the result text or download TXT. PNG limits can require a smaller width or shorter text.

Choose an export
NeedChooseCheck
Editable charactersCopy, Markdown block or TXTMonospace font, preserved spaces and no wrapping; styling is not included.
A rendered imagePNGOpen the downloaded file and check size and legibility. The recipient cannot edit it as text.

Try a small truck in a README or chat

This is the bundled truck generated in Standard mode at 40 columns and 13 rows. Use the Standard ramp (including its final space), brightness, contrast and saturation 100%, hue 0, sepia 0%, inversion off and no dithering. The build uses Sharp/Lanczos3 sampling; browser pixels may differ slightly.

Open the 40-column truck settings

Generate the Result and select Copy Markdown code block, or select this complete block, including both fence lines. Paste into a README or a chat that accepts fenced blocks, then inspect the rendered message.

```text
                     :--:::::           
                    :=+++++++--.        
                   .==+**====**=        
....::::::::-------=-=+#*....=#-        
========-===--==--=--=+#*++++*#*-..     
==--:-=-:-=-:-=-:-==-==##****##****+++. 
==--:-=-:-=-:-=-:-==-=-##****##*******: 
==----=---=---=------=-*############*+. 
-===========+==+++++++=#######%%%%%%#*- 
 .+*####*+#%#%#+++-=+-=*#####%%%%%%%%#+-
 -*%*=+%#*%*=+%#=--==-==+=+++#%#+=*%%*=:
 --%*++#+-%*+*%+              +%*+*%-   
 . :=++-  :+++-                -+++:    
```

Check the empty margin before the cab, the long dump-bed edge and the gaps around the wheels. Keep all spaces and line breaks. If lines wrap, try a narrower result; if the destination removes spaces or changes glyph widths, use PNG. A 40-column result fitting our chat budget does not guarantee it fits every chat or device.

This is a conversion demonstration, not reuse permission. View the source and unresolved rights evidence.

Related Pages

Ready to Create Your Own ASCII Art?

Open the editor, load a source, then follow the settings and export steps above.