Image to ASCII Converter
Turn an image into ASCII art by mapping pixel brightness to characters
Image
Upload an image or load the sample. The image is read off a canvas in your browser — it is never uploaded.
ASCII output
Upload an image to convert.About
Convert an image to ASCII art by mapping each region's brightness to a character. Pick the output width (column count), a character set (standard, blocks, binary, or detailed), and optionally invert the map. The image is read off the canvas in your browser — it is never uploaded.
Examples
Convert a portrait photo
image: portrait.jpg
columns: 80
charset: standard
invert: off@@@@@@@#########/////////*******///////#########@@@@@@@
@@@@@################/////////********////////////////@@@@@@
@@@@################////////**********///////###########@@@@
... (80 chars wide ASCII rendering)The luminance of each pixel region is mapped to the standard character ramp: ' ', '.', ':', ';', '+', '*', '#', '@' from light to dark.
Convert with the blocks character set
image: logo.png
columns: 60
charset: blocks
invert: on█▓▒░ ░ ░░▒▓█ ▓▒░ ░░▒▓▒░░ ░░▒▓█▓▒ ░░▒▓▒░
░░▒▓ ▓▒░░░▒▓█ ▓▒░ ░░▒▓▒░░ ░░▒▓▒░ ░░▒▓▒░ ░░▒▓▒░The blocks character set uses Unicode block-drawing characters (█ ▓ ▒ ░) for a denser, more graphic look at low column counts.
About this tool
Image to ASCII art converts a visual image into a character-based representation using the canvas API. Each pixel region is mapped to a character whose visual weight matches the region's luminance, so dark areas map to dense characters like '@' and light areas map to sparse characters like '.'. The result is a recognisable ASCII rendering of the original image.
The tool reads the image locally using the FileReader API — it is never uploaded to any server. You can adjust the column width (number of characters per row), choose from four character sets (standard, blocks, binary, detailed), and toggle invert so bright images produce dark-on-light output.
How to use
Select an image
Click Choose File to pick a local image (PNG, JPEG, GIF, WebP). The image is read entirely in your browser — it never leaves your device.
Adjust the settings
Set the column width (characters per row), pick a character set, and toggle invert. The ASCII output updates live as you change settings.
Copy the ASCII art
Click Copy to grab the ASCII art as plain text. The output is monospace and renders correctly in any terminal or code editor.
Use cases
Creating ASCII art for a terminal profile
Convert a logo or a portrait into ASCII art to embed in a terminal welcome message or a README.
Generating a text-based preview of an image
Represent an image as text for environments where images are not supported — IRC, terminal sessions, or plain-text documents.
Fun output for a CLI tool
Pipe an ASCII-rendered image through a CLI tool or a chat bot that only supports text.
Common mistakes
Mistake:Using too few columns.
Fix:With very few columns (e.g. 20), the character resolution is too coarse and the image becomes unrecognisable. Increase the column count until the detail is sufficient.
Mistake:Not accounting for character aspect ratio.
Fix:Terminal characters are roughly twice as tall as they are wide. The tool adjusts row height by a factor of 2 to compensate, but very narrow fonts may still look stretched.
Mistake:Expecting photographic accuracy.
Fix:ASCII art is an artistic representation, not a pixel-perfect reproduction. The result depends heavily on the image contrast and the character set chosen. High-contrast images produce the best output.
Frequently asked questions
Related guides
References & standards
Related tools
TOML Validator
Validate TOML and re-emit it as clean, indented JSON
TOML to JSON Converter
Convert TOML to JSON and JSON to TOML in either direction
JSON Lines Converter
Convert JSON Lines (NDJSON) to a JSON array and back
CSV to SQL Converter
Generate SQL INSERT statements from CSV data
JSON Schema Validator
Validate a JSON document against a JSON Schema
CSV to Markdown Converter
Convert CSV to a Markdown table and Markdown tables back to CSV