_______ ___________ ___
__\___ \_ ____/ /\ /______ ___\_/__ /\
/ \| \/ _ \ /--\_____ \\ / /\ / \
_/ | / \ \ |/ / \ \ _ _____/ \_______
\ |_____\____/ / / \____ /\/ /
\______| \ \_____/\______ /\ \/ \ /\NSILOVE / C /____ _
\ |_______\__\___ \ \ \ / \___\__/____
\____| /____/\_\/\__ / / __/___ \ /\ ____
\ \ \ / /_/ __ \/ /__\__/ _/ _____ ___
/\ \____\/ / // \ / / / _>/ //__/\
/ \ _/ \ // / / / \/ / \__\/
_ _________ / \_______ _ \___ /_______/ / _/ \____ \ /\/ \\ \ \\ \ \\/ \\ \ \ \\/ \\/ h7/dS!\\/
# AnsiLove/C
AnsiLove is an ANSI and ASCII art to PNG converter, allowing to convert
ANSI and artscene-related file formats into PNG images, supporting ANSI
(.ANS), PCBoard (.PCB), Binary (.BIN), Artworx (.ADF), iCE Draw (.IDF),
Tundra (.TND) and XBin (.XB) formats.
It creates size optimized 4-bit PNG files and supports SAUCE (Standard
Architecture for Universal Comment Extensions), 80x25 and 80x50 PC fonts
(including all the 14 MS-DOS charsets), Amiga fonts, and iCE colors.
language.
Experimental seccomp support is available for selected architectures and can be enabled by setting the ENABLESECCOMP variable to 1 when invoking CMake.
Specs
AnsiLove/C is strictly using the C99 standard to achieve high portability to all major operating systems. Supported compilers are GCC and Clang, others may work but aren't tested. We use Linux and OpenBSD for AnsiLove/C development.
Why C?
There were many reasons, most notably PHP interpreter independence and performance. A solid C foundation is just perfect for creating libraries and it can easily be embedded into applications. We already mentioned portability. What else? We wanted evolution. AnsiLove/C should not be understood as a port. It takes many different approaches (like processing binary font dumps or generating @2x Retina images), it is overall improved and introduces new features. While results tend to be the same, the codebase does not have much in common with it's ancestor.
Dependencies
AnsiLove/C uses the CMake build system and requires the [libansilove][2] library and header files.
Installing dependencies
- OpenBSD: pkgadd -r cmake
- NetBSD: pkgin install cmake
- FreeBSD: pkg install cmake
- macOS: brew install cmake
- Alpine Linux: apk add cmake gcc make musl-dev
- Debian / Ubuntu / Mint: apt-get install build-essential cmake
- Fedora: dnf install cmake gcc make
- Solus: eopkg install -c system.devel
Binary packages for libansilove are available on OpenBSD, NetBSD, FreeBSD, Debian, Ubuntu, and Solus.
On other systems, libansilove has to be installed manually.
Compiling
mkdir build cd build cmake .. make