{"id":13423357,"url":"https://github.com/ansilove/ansilove","last_synced_at":"2026-03-14T15:02:07.425Z","repository":{"id":2083571,"uuid":"3023111","full_name":"ansilove/ansilove","owner":"ansilove","description":"ANSI and ASCII art to PNG converter in C","archived":false,"fork":false,"pushed_at":"2025-03-24T17:32:17.000Z","size":2438,"stargazers_count":354,"open_issues_count":3,"forks_count":29,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-24T18:36:48.682Z","etag":null,"topics":["ansi","ansiart","ansilove","ascii","dos","ice-colors","sauce"],"latest_commit_sha":null,"homepage":"https://www.ansilove.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ansilove.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-12-20T22:39:59.000Z","updated_at":"2025-03-24T17:31:48.000Z","dependencies_parsed_at":"2024-01-14T03:49:35.757Z","dependency_job_id":"32296db6-21d3-450c-acc7-dd2dd5945481","html_url":"https://github.com/ansilove/ansilove","commit_stats":{"total_commits":841,"total_committers":12,"mean_commits":70.08333333333333,"dds":0.5005945303210464,"last_synced_commit":"dacebd1ffc6b4c0520f766b84845dda0410f3a27"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/ansilove/ansilove","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansilove%2Fansilove","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansilove%2Fansilove/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansilove%2Fansilove/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansilove%2Fansilove/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ansilove","download_url":"https://codeload.github.com/ansilove/ansilove/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansilove%2Fansilove/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27777507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-17T02:00:08.291Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansi","ansiart","ansilove","ascii","dos","ice-colors","sauce"],"created_at":"2024-07-31T00:00:32.604Z","updated_at":"2025-12-17T05:02:46.724Z","avatar_url":"https://github.com/ansilove.png","language":"C","funding_links":[],"categories":["C","Generators \u0026 Converters"],"sub_categories":["Imported: Upstream Snippet Gallery"],"readme":"```\n         _______         ___________          ___\n       __\\___   \\_  ____/     /\\   /______ ___\\_/__            /\\\n      /    \\|     \\/  _ \\    /--\\_____    \\\\   /  /\\          /  \\\n    _/      |     /    \\     \\      |/     /      \\ \\ _ _____/    \\_______\n    \\       |_____\\____/     /      /      \\____  /\\/                    /\n     \\______|      \\  \\_____/\\______       /\\   \\/  \\   /\\NSILOVE / C   /____ _\n      \\     |_______\\__\\___ \\ \\    \\      /  \\___\\__/____\n       \\____|        /____/\\_\\/\\__ /     / __/___ \\     /\\    ____\n                     \\    \\ \\     /     /_/ __   \\/    /__\\__/  _/ _____ ___\n                 /\\   \\____\\/    /     //   \\    /    /    /    _\u003e/    //__/\\\n                /  \\           _/      \\   //   /    /    /     \\/    / \\__\\/\n_ _________    /    \\_______ _ \\___    /_______/    /   _/ \\____      \\  /\n           \\  /                 \\ \\___/\\       \\_______/\\\\  \\  \\______/\\/\n            \\/                   \\_\\  \\ \\_______\\      \\ \\\\/ \\__\\     \\ \\\n                                    \\__\\/        \\______\\/ h7/dS!\\_____\\/\n```\n\n# AnsiLove/C\n\nAnsiLove is an ANSI and ASCII art to PNG converter, allowing to convert\nANSI and artscene-related file formats into PNG images, supporting ANSI\n(.ANS), PCBoard (.PCB), Binary (.BIN), Artworx (.ADF), iCE Draw (.IDF),\nTundra (.TND) and XBin (.XB) formats.\n\nIt creates size optimized 4-bit PNG files and supports SAUCE (Standard\nArchitecture for Universal Comment Extensions), 80x25 and 80x50 PC fonts\n(including all the 14 MS-DOS charsets), Amiga fonts, and iCE colors.\n\nThis is a complete rewrite of [AnsiLove/PHP][1] in the C programming\nlanguage.\n\nExperimental seccomp support is available for selected architectures and\ncan be enabled by setting the `ENABLE_SECCOMP` variable to `1` when\ninvoking CMake.\n\n# Specs\n\nAnsiLove/C is strictly using the `C99 standard` to achieve high\nportability to all major operating systems. Supported compilers are\n`GCC` and `Clang`, others may work but aren't tested. We use Linux\nand OpenBSD for AnsiLove/C development.\n\n# Why C?\n\nThere were many reasons, most notably PHP interpreter independence\nand performance. A solid C foundation is just perfect for creating\nlibraries and it can easily be embedded into applications. We already\nmentioned portability. What else? We wanted evolution. AnsiLove/C\nshould not be understood as a port. It takes many different approaches\n(like processing binary font dumps or generating @2x Retina images),\nit is overall improved and introduces new features. While results\ntend to be the same, the codebase does not have much in common with\nit's ancestor.\n\n# Dependencies\n\nAnsiLove/C uses the `CMake` build system and requires the\n[libansilove][2] library and header files.\n\n# Installing dependencies\n\n- OpenBSD: `pkg_add -r cmake`\n- NetBSD: `pkgin install cmake`\n- FreeBSD: `pkg install cmake`\n- macOS: `brew install cmake`\n- Alpine Linux: `apk add cmake gcc make musl-dev`\n- Debian / Ubuntu / Mint: `apt-get install build-essential cmake`\n- Fedora: `dnf install cmake gcc make`\n- Solus: `eopkg install -c system.devel`\n\nBinary packages for `libansilove` are available on OpenBSD, NetBSD,\nFreeBSD, Debian, Ubuntu, and Solus.\n\nOn other systems, `libansilove` has to be installed manually.\n\n# Compiling\n\n\tmkdir build\n\tcd build\n\tcmake ..\n\tmake\n\n# Packages\n\nAnsilove packages are available for:\n\n- [OpenBSD][3]\n- [NetBSD][4]\n- [FreeBSD][5]\n- [Debian][6]\n- [Ubuntu][7]\n- [openSUSE][8]\n- [Solus][9]\n- [Gentoo][10]\n- [Homebrew][11]\n- [Guix][12]\n- [Nix][13]\n\n# Features\n\nThe following formats are supported:\n\n- .ANS - ANSi (ANSI escape sequences: ANSI X3.64 standard)\n- .PCB - PCBoard Bulletin Board System (BBS) own file format\n- .BIN - Binary format (raw memory copy of text mode video memory)\n- .ADF - Artworx format, supporting custom character sets and palettes\n- .IDF - iCE Draw format, supporting custom character sets and palettes\n- .TND - [TundraDraw][14] format, supporting 24-bit color mode\n- .XB - The eXtended Binary [XBin][15] format, supporting custom character sets\n  and palettes\n\nFiles with custom suffix default to the ANSi renderer (e.g. ICE or CIA).\n\nAnsiLove/C is capable of processing:\n\n- [SAUCE][16] records\n- DOS and Amiga fonts (embedded binary dump)\n- iCE colors\n\nEven more:\n\n- Small output file size (4-bit PNG).\n- Optionally generates proper Retina @2x (and up to @8x) PNG.\n- You can use custom options for adjusting output results.\n- Built-in support for rendering Amiga ASCII.\n\n# Documentation\n\n## Synopsis\n\n```\n     ansilove [-dhiqrsv] [-b bits] [-c columns] [-f font] [-m mode] [-o file]\n              [-R factor] [-t type] file\n```\n\n## Options\n\n```\n     -b bits     Set to 9 to render 9th column of block characters (default:\n                 8).\n\n     -c columns  Adjust number of columns for ANSI, BIN, and TND files.\n\n     -d          Enable DOS aspect ratio.\n\n     -f font     Select font for supported formats.\n\n     -h          Show help.\n\n     -i          Enable iCE colors.\n\n     -m mode     Set rendering mode for ANS files. Valid options are:\n\n                 ced     Black on gray, with 78 columns.\n\n                 transparent\n                         Render with transparent background.\n\n                 workbench\n                         Use Amiga Workbench palette.\n\n     -o file     Specify output filename/path.\n\n     -q          Suppress output messages (quiet).\n\n     -r          Create Retina @2x output file.\n\n     -R factor   Create Retina output file with custom scale factor.\n\n     -t type     Specify input file type.\n\n     -s          Show SAUCE record without generating output.\n\n     -S          If available, use SAUCE info for render options (ex: width).\n\n     -v          Show version information.\n```\n\nThere are certain cases where you need to set options for proper\nrendering. However, this is occasionally. Results turn out well\nwith the built-in defaults.\n\n## Fonts\n\nWe dumped many fonts as binary data right into AnsiLove/C, so the\nmost popular typefaces for rendering ANSi / ASCII art are available\nat your fingertips.\n\nPC fonts can be (all case-sensitive):\n\n- `80x25` Default (Code page 437)\n- `80x50` 80x50 mode (Code page 437)\n- `cp737` Greek (Code page 737)\n- `cp775` Baltic (Code page 775)\n- `cp850` Latin-1 (Code page 850)\n- `cp852` Latin-2 (Code page 852)\n- `cp855` Cyrillic (Code page 855)\n- `cp857` Turkish (Code page 857)\n- `cp860` Portuguese (Code page 860)\n- `cp861` Icelandic (Code page 861)\n- `cp862` Hebrew (Code page 862)\n- `cp863` French Canadian (Code page 863)\n- `cp865` Nordic (Code page 865)\n- `cp866` Russian (Code page 866)\n- `cp869` Greek (Code page 869)\n- `spleen` Spleen (Modern font, code page 437)\n- `terminus` Terminus (Modern font, code page 437)\n\nAMIGA fonts can be (all case-sensitive):\n\n- `amiga` (alias to Topaz)\n- `microknight` (Original MicroKnight version)\n- `microknight+` (Modified MicroKnight version)\n- `mosoul` (Original mO'sOul font)\n- `pot-noodle` (Original P0T-NOoDLE font)\n- `topaz` (Original Topaz Kickstart 2.x version)\n- `topaz+` (Modified Topaz Kickstart 2.x+ version)\n- `topaz500` (Original Topaz Kickstart 1.x version)\n- `topaz500+` (Modified Topaz Kickstart 1.x version)\n\n## Bits\n\n`bits` can be:\n\n- `8` (8-bit)\n- `9` (9-bit)\n\nSetting the bits to `9` will render the 9th column of block characters,\nso the output will look like it is displayed in real textmode.\n\nSee the \"Memory Map\" section of the [Monochrome Display Adapter notes][17]\nfor more information.\n\n## Rendering Mode\n\n`mode` can be (all case-sensitive):\n\n- `ced`\n- `transparent`\n- `workbench`\n\nSetting the mode to `ced` will cause the input file to be rendered\nin black on gray, and limit the output to 78 columns (only available\nfor `ANS` files). Used together with an Amiga font, the output will\nlook like it is displayed on Amiga.\n\nSetting the mode to `workbench` will cause the input file to be\nrendered using Amiga Workbench colors (only available for `ANS`\nfiles).\n\nSettings the mode to `transparent` will produce output files with\ntransparent background (only available for `ANS` files).\n\n## iCE Colors\n\niCE colors are disabled by default, and can be enabled by specifying\nthe `-i` option.\n\nWhen an ANSi source was created using iCE colors, it was done with\na special mode where the blinking was disabled, and you had 16\nbackground colors available. Basically, you had the same choice for\nbackground colors as for foreground colors, that's iCE colors.\n\n## Columns\n\n`columns` is only relevant for .ANS, .BIN, .PCB,  and .TND files, and\nis optional. In most cases conversion will work fine if you don't set\nthis flag, the default value is `160` for .BIN files and `80`\notherwise.\n\n## SAUCE records\n\nIt's fine to use AnsiLove/C as SAUCE reader without generating any\noutput, just set option `-s` for this purpose.\n\n# Projects using Ansilove\n\n- [16colo.rs][18] - ANSI/ASCII art archive\n- [Textfiles.com][19] - Uses Ansilove for the ANSI Art Collection PNG previews\n- [Durdraw][20] - ASCII, Unicode and ANSI art editor for UNIX-like systems\n- [emacs-ansilove][21] - Display buffers as PNG images using ansilove\n  inside GNU Emacs\n\n# License\n\nAnsiLove/C is released under the BSD 2-Clause license. See the\n`LICENSE` file for details.\n\n# Authors\n\nAnsiLove/C is developed by Stefan Vogt ([@ByteProject][22]), Brian Cassidy\n([@bricas][23]) and Frederic Cambus ([@fcambus][24]).\n\n# Resources\n\nProject homepage: https://www.ansilove.org\n\nGitHub: https://github.com/ansilove/ansilove\n\n[1]: https://www.ansilove.org\n[2]: https://github.com/ansilove/libansilove\n[3]: https://openports.pl/path/graphics/ansilove\n[4]: https://pkgsrc.se/graphics/ansilove\n[5]: https://www.freshports.org/graphics/ansilove/\n[6]: https://packages.debian.org/search?keywords=ansilove\n[7]: https://packages.ubuntu.com/search?keywords=ansilove\n[8]: https://software.opensuse.org/package/ansilove\n[9]: https://dev.getsol.us/source/ansilove/\n[10]: https://packages.gentoo.org/packages/media-gfx/ansilove\n[11]: https://formulae.brew.sh/formula/ansilove\n[12]: https://packages.guix.gnu.org/packages/ansilove/\n[13]: https://github.com/NixOS/nixpkgs/tree/master/pkgs/by-name/an/ansilove\n[14]: https://sourceforge.net/projects/tundradraw/\n[15]: https://github.com/radman1/xbin\n[16]: https://github.com/radman1/sauce\n[17]: https://www.seasip.info/VintagePC/mda.html#memmap\n[18]: https://16colo.rs\n[19]: http://artscene.textfiles.com/ansi/\n[20]: https://durdraw.org\n[21]: https://gitlab.com/xgqt/emacs-ansilove\n[22]: https://github.com/ByteProject\n[23]: https://github.com/bricas\n[24]: https://github.com/fcambus\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansilove%2Fansilove","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fansilove%2Fansilove","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansilove%2Fansilove/lists"}