Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsiTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
For classic monochrome ASCII, use jp2a; for adjustable ANSI-terminal or colored HTML output, try img2txt.py; and for more input formats plus text, HTML, or image export, consider img2a. Each can convert a photo stored on your device: choose its local file path rather than a URL. The right choice depends mainly on where you plan to use the result.
Choose a converter by the result you need
| Tool | Best fit | Documented input and output | Trade-off |
|---|---|---|---|
| jp2a | Classic monochrome ASCII or terminal color | JPEG, PNG, and WebP images to ASCII; supports custom characters and color options. jp2a manual | Focused on ASCII output. Choose the character set and color or background options to suit the display destination. |
| img2txt.py | Adjustable HTML or ANSI output | A local image file to HTML or ANSI output, with controls for dithering, antialiasing, output length, aspect ratio, and background. img2txt.py project README | Requires a Python/pip setup; its rendering controls take some tuning. |
| img2a | Multiple input formats and export choices | JPEG, PNG, GIF, BMP, and WBMP to raw text, HTML, or an image. The project documents Unix-like and Windows support. img2a project README | Java-based workflow; check the project’s current release and setup instructions. |
| ImageMagick | Preparing a photo before conversion | Image resizing, format conversion, dithering, and other transformations. ImageMagick command-line documentation | It is an image-preparation tool, not a dedicated photo-to-ASCII converter; pair it with one of the converters above. |
| chafa | Richer terminal display | A June 2026 comparison describes truecolor and Unicode detail. June 2026 practical comparison | The comparison favors it for terminal fidelity, but this is a qualitative assessment, not a controlled benchmark. |
Pick an output format that travels well
Plain text for documents and code
Plain ASCII is usually the simplest format to paste into a README, email, or code comment. Keep color options off when saving it as an ordinary text file. Spaces and line breaks matter to the image, so preview the result in its intended destination; some editors or message systems may wrap lines or alter spacing.
ANSI color for compatible terminals
ANSI output can add color in a terminal that supports the relevant escape codes. A saved ANSI file is not ordinary plain text: other viewers may show control codes instead of color, so use it where ANSI rendering is supported.
Free tools Windows power users keep installed
One-click scans. No signup required.
HTML or an image for fixed appearance
When the result needs color or a more consistent appearance in a browser or other visual context, HTML or image export may be a better fit. img2txt.py documents HTML output, while img2a documents HTML and image output. Check the project’s instructions for the exact output options in the version you install.
#1 Best Overall
Convert a local photo with jp2a
- Install jp2a while you have internet access, following the instructions for your operating system and the version you intend to use.
- Run the converter against a local image path. For example:
jp2a --width=80 --output=art.txt photo.jpg. This asks jp2a to render the localphoto.jpgat a width of 80 characters and save the result toart.txt. The command and available flags may vary by installed version; check the local help or manual. - Open the output in the destination where it will be used. If lines wrap, reduce the width or use a destination with more horizontal space.
jp2a’s manual documents image-file input, width-related behavior, output options, and character selection. Its documented input formats include JPEG, PNG, and WebP. See the jp2a manual.
Improve detail without losing the subject
Set a useful output width
A very narrow render has too few characters to preserve recognizable features. A render wider than the available terminal or text area may wrap and distort its shape. Treat 80 characters in the example command as a starting point, not a universal ideal: the useful width depends on the destination and the photo.
Choose the character mapping
ASCII converters represent image tones with characters. A selected character ramp affects how light and dark areas appear; jp2a documents custom character selection. If the picture looks muddy, try a different ramp or crop the image so the main subject occupies more of the frame.
Check contrast and background
A photo’s tonal mapping can look different against a light or dark display background. jp2a provides color and background-related options, and img2txt.py documents background handling. Preview the output against its real destination before settling on settings.
Preprocess only when useful
Resizing or dithering a photo before conversion can help prepare it for a text rendering. ImageMagick documents these and other image operations, but it does not replace the ASCII converter. Review ImageMagick’s command-line documentation.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Set up and verify tools before going offline
Offline conversion means processing a local image without relying on a live conversion website. It does not automatically mean that installation can be completed without a connection: project setup may require downloading the application or dependencies. Install while connected, then test the converter with a local photo before disconnecting. Avoid URL inputs during conversion when offline operation is required.
Rank #4
Project documentation describes img2txt.py’s Python/pip workflow and img2a’s Java-based workflow, but the exact release, package availability, and setup requirements can change. Consult the current instructions for your operating system before installation: img2txt.py README and img2a README.
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

