ASCII Art Generator
Turn an image or your live camera into ASCII art.
Drop an image here
JPG, PNG, WebPAdjust
Your image and camera frames are processed locally in your browser and are not uploaded for conversion.
How to Use the ASCII Art Generator
Choose, drop, or paste one JPG, PNG, or WebP image. The image is converted into a grid of characters directly in your browser.
Use Detail to control the number of character columns, choose a character style, then adjust brightness, contrast, density inversion, or color until the subject reads clearly.
When the result is ready, copy the actual character grid, download it as a TXT file, or export the rendered artwork as a PNG.
You can also switch to Camera, explicitly start your device camera, and turn the live video frames into continuously updated ASCII art.
What Is ASCII Art?
ASCII art represents an image using text characters instead of ordinary image pixels. Different characters occupy different amounts of visual space, so a carefully ordered set of symbols can approximate light areas, shadows, edges, and shapes.
Traditional ASCII art uses characters from the ASCII character set, including spaces, punctuation, letters, numbers, and symbols. Modern character art may also use Unicode characters. The Blocks style in this generator uses shaded Unicode block characters, while Classic and Binary produce a more traditional text-art appearance.
The result is still built from a regular grid. When that grid is displayed with a monospace font, each character occupies the same horizontal width and the picture retains its intended structure.
How Image-to-ASCII Conversion Works
The source image is first reduced to a smaller sampling grid. The selected Detail value determines the number of columns, while the number of rows is calculated from the source aspect ratio and the measured dimensions of the monospace character cells.
Each sampled pixel is composited against the dark output background when transparency is present. Brightness and contrast adjustments are then applied to its red, green, and blue channels.
The converter estimates perceived brightness using weighted red, green, and blue values. Darker or lighter samples are then mapped to positions in the selected character ramp.
The original photograph is therefore not stored inside the text. The shape is reconstructed from characters whose visual density approximates the brightness pattern of the source.
Why ASCII Art Needs Aspect-Ratio Correction
A character cell is usually taller than it is wide. Converting an image to the same number of pixel rows and character rows would therefore stretch the result vertically.
This generator measures the width of a monospace character and uses the configured line height when calculating the required number of ASCII rows.
The correction is based on both the original image proportions and the dimensions of the rendered character cells. Portraits, landscapes, logos, and camera frames can therefore retain substantially more natural proportions.
Choosing the Right Detail Level
Detail is the width of the generated character grid. A value of 100 means the artwork is sampled into 100 character columns before the corrected row count is calculated.
More columns preserve smaller image features and tonal changes, but they also produce longer lines, more characters, and more rendering work. A very dense conversion is not automatically a better-looking conversion.
Lower detail can work better for logos, silhouettes, bold shapes, and camera use because large features remain easy to distinguish. Higher detail is more useful when the source contains smaller facial features, textures, or fine edges.
Static images support 40 to 220 columns. Live camera rendering is limited to 40 to 160 columns to reduce the amount of work required for continuously changing frames.
Classic, Detailed, Blocks, and Binary Styles
Classic uses a short progression from whitespace and punctuation to increasingly dense symbols. It is a useful starting point because the tonal differences remain easy to see.
Detailed uses a much longer character ramp. More possible density levels allow smaller brightness differences to select different characters, which can preserve more texture in suitable images.
Blocks uses shaded block characters for a heavier and more graphic appearance. Binary restricts the visible artwork to zeroes, ones, and whitespace.
Character style changes how brightness is represented; it does not change the underlying source image or add missing detail.
Brightness, Contrast, and Density Inversion
Brightness shifts the sampled color channels lighter or darker before characters are selected. It can help reveal a dark subject or reduce an image whose highlights dominate the conversion.
Contrast increases or decreases the separation between darker and lighter samples. Raising contrast is often useful when facial features, outlines, or objects blend into similar character densities.
Invert density reverses the relationship between brightness and the selected character ramp. Areas that would normally receive dense characters receive lighter characters instead, and vice versa.
These controls change the conversion itself rather than applying a cosmetic filter only to the final PNG.
Monochrome, Terminal, and Original Color
Monochrome renders the generated characters using one light foreground color against the dark canvas. Terminal uses a green foreground for a classic terminal-style appearance.
Original color stores an adjusted RGB value for each generated character cell and uses that value when drawing the canvas. This allows the PNG and on-screen preview to preserve the sampled color structure of the source.
Color does not become part of the plain character grid. Clipboard text and TXT files contain characters, spaces, and line breaks only, so they cannot preserve an independent color for every character.
Use Your Camera as Live ASCII Art
Switch to Camera and press Start camera to request video permission. Camera access is not requested automatically when the page loads, and the tool requests video only rather than microphone audio.
Frames from the active camera are sampled repeatedly and converted using the same character, brightness, contrast, inversion, and color settings available for images.
The live renderer targets approximately 15 frames per second. Actual responsiveness depends on the device, browser, camera resolution, selected detail level, and available processing resources.
The front-facing view is mirrored during conversion. Flip requests the opposite facing direction where the browser and device expose a suitable camera. Stop releases the active media tracks.
Copy ASCII Text or Download PNG and TXT
Copy writes the real character rows to the clipboard. TXT downloads the same grid as a plain text file, making either option suitable when the artwork needs to remain editable text.
PNG renders the character grid onto a canvas. This preserves the selected monochrome, terminal, or original-color appearance and avoids depending on the font settings of another application.
Camera mode also provides Capture, which saves the current ASCII rendering as a PNG.
For copied text, use a monospace font and preserve both spaces and line breaks. A proportional font assigns different widths to different characters and will distort the artwork.
Private Browser-Based Image and Camera Processing
Image decoding, pixel sampling, ASCII conversion, camera-frame processing, clipboard preparation, and PNG or TXT creation happen in the current browser.
The source image is not uploaded for conversion. Camera frames are read from the local MediaStream and are not sent to the server by the ASCII conversion process.
Camera access still depends on the browser permission system. You can deny the request and continue using image conversion without enabling a camera.
Supported Images and Practical Limits
The generator accepts one static JPG/JPEG, PNG, or WebP image at a time. You can select a file, drag it onto the workspace, or paste an image from the clipboard.
An input image can be up to 50 MiB and may contain at most 25 million decoded pixels. The browser must also be capable of decoding the file.
Animated GIF conversion, uploaded video conversion, HEIC or HEIF input, SVG input, ANSI export, HTML export, and text-to-banner generation are not part of this tool.
Large character grids and live camera conversion require more CPU and memory than low-detail conversions, so the practical performance ceiling depends on the device.
ASCII character style comparison
Each style maps sampled brightness to a different ordered character ramp.
| Style | Character set | How it behaves | Useful for |
|---|---|---|---|
| Classic | .:-=+*#%@ | A compact light-to-dark character ramp with clear tonal steps. | General photos, portraits, logos, and recognizable silhouettes. |
| Detailed | Long density ramp | Uses many characters to represent smaller changes in brightness. | Images with gradients, texture, facial detail, or subtle shading. |
| Blocks | ░▒▓█ | Uses shaded Unicode block characters rather than a traditional ASCII-only ramp. | Bold graphic output, icons, simple shapes, and pixel-like artwork. |
| Binary | 0 and 1 | Restricts visible marks to binary digits plus whitespace. | Binary-style artwork, code-themed graphics, and high-contrast subjects. |
ASCII art output options
Plain-text exports contain the character grid, while image exports contain the rendered canvas.
| Output | Contains | Preserves rendered color | Useful for |
|---|---|---|---|
| Copy | Plain character grid | No | Pasting into code, README files, comments, documents, or other monospace text. |
| TXT | Plain character grid | No | Saving editable ASCII art as a normal text file. |
| PNG | Rendered canvas | Yes | Sharing the visual result while preserving the selected rendering style. |
| Camera capture | Current rendered ASCII frame | Yes | Saving a still image from the live ASCII camera. |
How Brightness Becomes an ASCII Character
The implementation calculates a weighted brightness value and maps its normalized density to a position in the active character ramp.
- R
- Adjusted red channel value from 0 to 255
- G
- Adjusted green channel value from 0 to 255
- B
- Adjusted blue channel value from 0 to 255
- L
- Weighted brightness value
- D
- Normalized character density from 0 to 1
- n
- Number of characters in the active ramp
- i
- Selected position in the character ramp
- W
- Source image or video-frame width
- H
- Source image or video-frame height
Practical examples
Ways to Use the ASCII Art Generator
Turn a portrait into ASCII art
Choose a portrait, select Classic, and start near 100 columns.
The portrait is rebuilt as a proportion-corrected character grid.
Raise contrast when facial features blend into similar character densities.Create detailed ASCII from a landscape
Choose a landscape image, select Detailed, and increase the Detail setting.
More character columns preserve smaller edges and tonal changes.
Very high detail can make the result harder to read when viewed at a small size.Make binary image art
Select Binary and adjust contrast until the subject separates clearly from the background.
The visual structure is represented using zeroes, ones, and whitespace.
Create terminal-style ASCII
Choose Terminal color and either Classic or Detailed character style.
The ASCII canvas is rendered with green characters against the dark background.
Keep the colors of a photo
Choose Original under Color after loading an image.
Each rendered character uses the sampled color associated with its source cell.
Copied text and TXT files remain plain characters and do not contain per-character color.Capture a live ASCII camera frame
Open Camera, press Start camera, adjust the settings, and press Capture.
The current ASCII camera rendering is downloaded as a PNG.
Practical answers
ASCII Art Generator FAQ
What is an ASCII art generator?
An ASCII art generator rebuilds visual shapes using text characters. This tool samples an image or camera frame, estimates the brightness of each cell, and selects characters from an ordered density ramp.
How do I convert an image to ASCII art?
Choose, drop, or paste a JPG, PNG, or WebP image. The conversion appears automatically. You can then change detail, character style, brightness, contrast, density inversion, and color before copying or downloading the result.
Which image formats are supported?
The tool accepts one static JPG/JPEG, PNG, or WebP image at a time. Animated GIF, SVG, HEIC, HEIF, and uploaded video conversion are not supported.
What is the maximum image size?
An image can be up to 50 MiB and up to 25 million decoded pixels. The browser must also be able to decode the file successfully.
Can I drag and drop or paste an image?
Yes. You can choose a file, drop an image onto the workspace, or paste an image from the clipboard.
Can I use my webcam as an ASCII camera?
Yes, in a compatible secure browser. Switch to Camera and press Start camera. The live frames are converted into ASCII in the browser until you press Stop or leave the page.
Does the ASCII camera use my microphone?
No. The camera request explicitly disables audio and requests video only.
Is my image or camera feed uploaded?
No. Image decoding, camera-frame sampling, ASCII conversion, and export happen in the current browser. The image or camera frames are not uploaded for conversion.
Why does copied ASCII art look distorted?
ASCII art depends on equal-width character cells. Use a monospace font and preserve spaces and line breaks. Proportional fonts assign different widths to different characters and distort the grid.
How do I get more detail in ASCII art?
Increase the Detail setting or try the Detailed character ramp. More columns can preserve smaller features, although extremely dense ASCII can become harder to read and requires more processing.
What does Invert density do?
It reverses how brightness selects characters from the density ramp. Bright regions and dark regions therefore exchange their usual character-density relationship.
Can ASCII art keep the original image colors?
The on-screen canvas and PNG can render each character using a sampled source color. Clipboard text and TXT files cannot preserve independent colors for individual characters, so they contain the character grid only.
What is the difference between Classic and Detailed ASCII?
Classic uses a short character ramp with clear tonal steps. Detailed uses a much longer ramp, giving the converter more possible character densities for representing smaller brightness differences.
Is the Blocks style technically ASCII?
The Blocks style uses Unicode shaded block characters rather than characters from the original ASCII character set. It is included as an alternative form of character-based image art.
Can I download ASCII art as PNG or TXT?
Yes. TXT saves the plain character grid. PNG saves the rendered canvas and can preserve monochrome, terminal, or original-color rendering. Camera mode also provides a Capture button for saving the current frame as PNG.
Does this generate large ASCII text banners?
No. This tool converts images and live camera frames into character art. It does not generate FIGlet-style banners or transform typed words into large ASCII lettering.
Does it convert GIFs or videos to animated ASCII?
No. The file converter supports static JPG, PNG, and WebP images. Live camera frames can be rendered continuously, but uploaded GIF and video animation conversion is not supported.
Does ASCII camera work on mobile?
It can work on mobile browsers that provide MediaDevices.getUserMedia in a secure context and expose compatible camera hardware. Camera switching depends on the capabilities reported by the browser and device.