Website Review
What is Ansilove?
Ansilove is a converter for text-mode artwork: it turns ANSi and related artscene formats into PNG images. It comes from the BBS and artpack world, where files were built for 80-column text screens rather than modern picture formats. The project provides both a command-line tool (ansilove) and a C library (libansilove) that other software can build on.
What it handles
- ANSi art, the colored text-and-block-character drawings traded on bulletin board systems
- Related artscene and text-mode formats, including those carrying SAUCE metadata that records title, author and font
- Font selection driven by that metadata, so a file can render in its intended typeface rather than a default
Who it is for
- People archiving or republishing BBS-era artpacks who need viewable images instead of raw
.ansfiles - Developers who want rendering inside their own viewer, gallery or terminal-art tool via
libansilove - Anyone converting a single file from the command line for a blog post, wiki page or documentation
A practical example
A sysop has a folder of ANSi screens from an old board and wants to post them on a website. Running each file through ansilove produces PNGs that browsers display directly, preserving the original colors and layout instead of reflowing the text. The SAUCE record, if present, tells the converter which font and width to use.
Trade-offs to weigh
| Consideration | What it means in practice |
|---|---|
| Output is an image | Text is no longer selectable, searchable or accessible to screen readers |
| Fidelity over convenience | Correct fonts and SAUCE handling matter more than a quick text dump |
| Two ways in | The CLI suits one-off jobs; the library suits integration into another program |
| Niche scope | It targets artscene formats, not general image conversion |
If you only need to read an ANSi file as plain text, a terminal pager may be enough. Choose Ansilove when the visual result — colors, block characters, original font — is the point.
As a next step, check the Examples section on Ansilove to see rendered output before and after, then try one file from your own collection to judge whether the font handling matches what you expect.
How do I convert an ANSI art file to PNG with Ansilove?
Install Ansilove, then run it from a terminal against your ANSI file. The command-line tool reads ANSi and related artscene formats and writes a PNG.
ansilove myart.ans
By default this produces myart.png beside the source file. If you want to control the name or location, give the output path explicitly:
ansilove -o /path/to/output.png myart.ans
Choosing the right font and size
ANSI art was drawn for specific text-mode fonts and grid dimensions, so the output only looks correct if the character cell matches the original. Ansilove ships with several classic fonts, and the page evidence notes Spleen 8x16 support (requiring a matching libansilove version) and a fix for "Amiga Topaz 1" font selection from SAUCE metadata. If your file carries SAUCE metadata, that record often names the font and dimensions the artist intended, and Ansilove can pick them up automatically. If the result looks stretched, blocky or misaligned, override the font and width/height rather than accepting the default.
Typical workflow
- Download or build Ansilove for your platform (packages exist for several systems; the changelog references Homebrew, Guix and Nix packages).
- Run it on one file to confirm the font and dimensions look right.
- Batch-convert a whole directory once you have a command that works, since ANSI collections often run to hundreds of files.
When to use the library instead
If you are building a viewer, gallery or conversion pipeline rather than converting files by hand, libansilove is the underlying library and lets you embed the same rendering in your own software. The command-line tool is the faster route for one-off conversions and scripts; the library is the better choice when you need programmatic control or want to integrate rendering into an application. Projects such as Textfiles.com are noted among the projects using Ansilove, which is a useful signal if you want to see the tool applied to large archives of BBS-era art.
Practical next step
Convert a single file first, compare the PNG against how the art appears in a terminal or a known-good ANSI viewer, then adjust font and dimensions until they match before processing a batch.
Does Ansilove work on Linux, macOS, and Windows?
Ansilove is primarily a command-line tool built around CMake, and it does not present itself as a single cross-platform installer for all three systems. The page evidence points to Linux and macOS packaging more than Windows: the changelogs mention Nix, Guix, Homebrew, Gentoo and RPM packages, and CMake minimum versions. That suggests the easiest path is Linux or macOS, where a package manager or a source build with CMake is likely to work.
For Windows, treat it as a build-it-yourself or compatibility-layer situation rather than a native, documented install. The page evidence does not list a Windows binary, installer, or package. In practice, Windows users would need a Unix-like environment such as WSL, MSYS2 or Cygwin, then build the tool from source. That is more work and more likely to hit font or terminal-related quirks than on Linux or macOS.
A quick way to decide:
- Linux: best supported by the evidence, with Nix, Guix, Gentoo and RPM packaging mentioned.
- macOS: Homebrew is mentioned in the changelog, so it is likely the most convenient route.
- Windows: no native package or installer is shown; expect to use WSL or a similar environment and compile from source.
If you are on Windows and only need to convert a few ANSI files, the practical next step is to try WSL first, install the build dependencies, and compile Ansilove from source. If you are on macOS or Linux, check your package manager before building manually. The project's own Ansilove downloads page is the place to confirm the current source and package links.
Can Ansilove render ANSI art that includes PCBoard or XBin fonts?
Yes. PCBoard and XBin are among the formats Ansilove handles, and its changelog shows active work on both: XBin font memory leaks were fixed in libansilove 1.3.1, and handling of 512-character XBin fonts was added in 1.3.0. PCBoard support also appears in the same release line, with a fix to how the PCBoard buffer is incremented.
H3 What that means in practice If you have an old BBS-era file using PCBoard color codes or an XBin with a custom embedded font, Ansilove converts it to PNG rather than flattening it to plain text. The bundled font data matters here: XBin files can carry their own glyphs, and the changelog notes Spleen 8x16 reaching full CP437 coverage, with an earlier fix for "Amiga Topaz 1" font selection from SAUCE metadata. SAUCE is the metadata block many artscene files carry, and honoring it is what makes the right font and dimensions get picked automatically.
H3 A concrete check Take one PCBoard file and one XBin file from the same artpack, convert both, and compare against a known-good viewer like 16colo.rs. If the PCBoard output shows the right block characters and the XBin output keeps its custom lettering, your pipeline is sound. If an XBin renders in a fallback font, the embedded font data likely isn't being read — check that you're on a recent libansilove, since the 512-character support landed in 1.3.0.
H3 Audience and trade-off This suits archivists, BBS sysops and demo/artscene historians who need stable image output for the web. The trade-off is that Ansilove is a converter, not an interactive viewer: you get static PNGs, so animation or terminal-authentic rendering isn't the goal. For browsing rather than converting, a dedicated viewer may fit better.
How can I use Ansilove in my own software project?
Ansilove is a converter for ANSi and artscene file formats, and it ships in two layers: the ansilove command-line tool and libansilove, a library you can build against. For "using it in my own software," the library is the part that matters — it handles the format parsing and rendering, so your project supplies the file, the font choice and the output path.
Two integration routes
| Route | What you get | Best when |
|---|---|---|
libansilove (C library) |
In-process conversion, no external binary to ship or invoke | You are writing C/C++ or can bind to a C API, and want conversion inside your own rendering or batch pipeline |
ansilove CLI |
A finished binary you call as a subprocess | Your stack is not C-friendly, or you want a quick prototype before committing to a library dependency |
The library approach is the one to pick for a real product: you avoid spawning processes per file and avoid depending on a user-installed binary. The CLI route is legitimate for scripts, static-site build steps, or one-off artpack conversion.
Practical steps
- Build
libansilovefrom source (the project uses CMake) and link it into your project, or install a packaged version if your platform's package manager carries one. - Feed it a file plus the options that matter for output: font selection, character width/height, and whether you want a retina-scale PNG.
- Read the SAUCE metadata — Ansilove supports it, and its release notes mention fixes around SAUCE-driven font selection, so embedded metadata can and does influence rendering.
- Render to PNG and hand the image to your own UI, archive or publishing step.
Where it fits in a real project
A common scenario: you run a BBS nostalgia archive or an artscene gallery and want to display decades-old .ans, .pcb or XBin files as images in a modern web front end. Your backend walks an uploaded artpack, calls libansilove per file, caches the resulting PNGs, and serves them. That is essentially what existing projects in the "projects using Ansilove" list do — the release notes reference Durdraw, Abydos and Textfiles.com as integrators, which tells you the library is being embedded rather than only run by hand.
If you want to see output before writing code, the site's Examples and Downloads sections and its BBS Nostalgia page are the fastest way to judge whether the rendering matches your expectations. For a broader set of text-art tooling to compare against, 16 Colors is the well-known artscene archive, and Textfiles.com is the long-running BBS document and file collection that the project itself lists as a user.
Decision criterion
Choose the library if conversion happens per-request or per-file inside your application and you can consume a C API. Choose the CLI if conversion is a build-time or batch step and you would rather not manage a native dependency. Either way, check the font support you need — Spleen 8x16 and Amiga Topaz are handled, and font availability has been a moving target across releases, so pin a version you have tested.
What is SAUCE metadata and how does Ansilove handle it?
SAUCE metadata is descriptive information embedded at the end of an ANSI, ASCII, or similar text-art file. It records details such as the file's title, author, group, character width and height, font used, and rendering mode, so viewers and converters can reproduce the artwork as the artist intended.
Ansilove reads this metadata when converting art to PNG. A changelog entry for version 4.2.2 notes a fix for selecting the "Amiga Topaz 1" font from SAUCE metadata, showing that SAUCE values can influence font choice during conversion.
Practical use
If you are converting an old BBS-era art file, SAUCE is what often preserves the intended font and dimensions. A converter that ignores SAUCE may still produce an image, but the character set or proportions can differ from the original. For a batch of artpack files, checking SAUCE support matters when you want consistent, faithful output rather than a quick preview.
Next step
Try converting a file known to contain SAUCE with Ansilove and compare the result against a viewer that also reads SAUCE. If the font and layout match, the metadata path is working as expected. For background on the format and related tools, see Ansilove and Textfiles.com.
User reviews (0)