October 14th 2019
libansilove 1.1.5 has been released. You can download it here.
- Move background transparency operations in the output function
- Allow setting transparent background for retina images
- Add extern declaration for fonts data arrays
- Use type size_t for loop and structIndex variables
September 13th 2019
libansilove 1.1.4 has been released. You can download it here.
- Force xbin_fontsize to 16 when using default 80x25 font
- Return ANSILOVE_FORMAT_ERROR if xbin_fontsize > 32
August 23th 2019
libansilove 1.1.3 has been released. You can download it here.
- Omit implicit return in the example program
- Use a switch statement to set 24-bit background and foreground values
- Remove superfluous background color allocations in the Binary, PCBoard and XBin loaders
- Modify the PCBoard loader to use a cursor pointer to parse input
- Infer font height to 16 in the XBin loader, the default in absence of font data (Thanks Andrew Herbert)
August 16th 2019
ansilove 4.0.3 has been released. You can download it here.
- Use errx() for displaying error messages
- Print information messages on stdout
- Introduce a version() function to display version information
- Add a -q flag (quiet) to allow silencing output messages
August 13th 2019
ansilove 4.0.2 has been released. You can download it here.
- Remove most examples from the repository, they continue to live on the website
- Move the remaining examples in per author directories, and add LICENSE files for these artworks, courtesy of their authors
June 25th 2019
ansilove 4.0.1 has been released. You can download it here.
- Fix a few typos in README and ansilove.1
- Simplify display of default font when no font option is specified
- Drop the leading dot when saving input file extension
- Fix the check for readComments() return value
April 30th 2019
libansilove 1.1.2 has been released. You can download it here.
- Use 'xbin_fontsize' for character height instead of an hardcoded value, fixes a rendering bug reported by Bart Dumon
- Rename the 'binary_palette' array to 'vga_palette'
- More format validation checks for the XBin loader
February 11th 2019
libansilove 1.1.1 has been released. You can download it here.
- Add install target for man page
- Use the correct idiom for realloc, to avoid leaking memory if allocation fails
- Fixed memory leak in the output() function, gdImageDestroy() must be called after gdImagePngPtr() (Thanks Andrew Michaelson)
January 16th 2019
Following yesterday release of libansilove 1.1.0, I'm happy to announce that ansilove 4.0.0 has finally been released. You can download it here.
This is the first release of ansilove which is actually using libansilove. This makes the codebase cleaner and much easier to maintain.
- Switch to using libansilove
- Add a new switch (-d) to toggle DOS aspect ratio
- Add initial support for PabloDraw 24-bit ANSI sequences
- Ansilove now generates only one output file when -r or -R options are used
- Display scale factor when -r or -R options are used
- Allow to specify the number of columns for ANSI and Tundra files
- Restrict maximum allowed number of columns to 4096
- Check asprintf() return value and error if allocation fails
- Bugfixes and improvements in the SAUCE parser
- Refactor font selection processing
- Refactor rendering mode processing
- Use OpenBSD style(9) for function prototypes and declaration
- Add missing headers and remove unnecessary ones
- Remove versionInfo(), simply print the header with version information when invoked with -v
- Remove showHelp(), show synopsis instead when invoked with -h
- Add a new example ANSi (Thanks Nail)
- Remove -e switch, examples are now listed in the man page instead
- Make synopsis() only display SYNOPSIS, as it should be
- Add an EXAMPLES section in ansilove.1
- PC fonts for code pages other than cp437 are now named using the cpNNN scheme. Albeit not documented anymore, the previously used names will keep working
January 15th 2019
libansilove 1.1.0 has been released. You can download it here.
- Only call gdFree() if the PNG buffer was allocated (Thanks Joris Vink)
- No need for buffer pointers to be const, they're passed to functions taking non consts (Thanks Joris Vink)
- Introduce a maplen variable to allow tracking mmap size, as we can't rely on the length variable because of SAUCE
- Unmap ctx->buffer on cleanup (Thanks Joris Vink)
- Check for the TUNDRA24 string in TND files header
- Split fonts data to have one include file per font
- Use macros instead of hardcoded values in the Tundra loader
- Use 'X' instead of integer value for the start of SGR sequences
- Always check that seqTok is not NULL before using it
- Move the include guards to the top of header files
- Add format validation checks for the XBin loader
- Increment ansi_buffer by more than one element at a time when using realloc
- Add initial man page, documenting the ansilove_ctx and ansilove_options structures
Happy New Year 2019.
December 7th 2018
Back in October, I received an anonymous mail tipping me about 16colo.rs, a new online ANSI gallery using Ansilove.
It's really fantastic to see Ansilove used at such a scale, and it helped uncover a few rendering issues which have been fixed since.
I strongly encourage you to visit the site, as it is quite an improvement compared to all galleries we've had in the past, and the search functionality actually works well.
November 16th 2018
We are extremely happy to announce that libansilove 1.0.0 has finally been released. You can download it here.
The code was splitted from Ansilove/C 3.0.9 in December 2017, and almost 200 commits have been made since that release, to transform the conversion code into a reusable C library.
A new version of Ansilove/C will be released soon to take advantage of the library.
April 19th 2017
Ansilove/PHP 1.12 has been released. You can download it here.
Ansilove/PHP is now deprecated, version 1.12 will be the last release.
Users are encouraged to migrate to Ansilove/C which replaces the command line converter, and to Ansilove.js for doing "on the fly" conversions on web pages. See the downloads section for more details.
- Adding a new example ANSi (Thanks Otium)
- Adding a new example ASCii (Thanks Konami)
- Adding a new example ANSi (Thanks Andy Herbert)
- Adding a new example ANSi (Thanks TCF)
- Adding a new example XBin (Thanks Enzo)
- Relicensed under the BSD 2-Clause license
- Use env to find PHP
- Switch examples pages to HTML5
- Add deprecation notices
April 18th 2017
After moving to its own domain last year, the site has now also been switched to HTTPS and redesigned. We are now using Stefan's excellent BlockZone font and Luciano's header logo.
Thanks to both of you for making the new version possible.
March 26th 2014
Ansilove/PHP 1.11 has been released. You can download it here.
- Fixed a bug in the TUNDRA renderer
- Fixed inconsistency when using Amiga fonts: bold characters are now displayed only in CED and WorkBench modes
- Removing PHP warning about date.timezone settings when logging errors
- Removing PHP warning displayed when input file doesn't exist
- Added 3 example ASCiis (Thanks to: Plur, Spear, Knocturnal, Sk!n)
- Added 9 example ANSis (Thanks to: Knocturnal, Grymmjack, Noches, Avenging Angel, Enzo, BYM, Filth, Rad Man)
December 27th 2013
I'm very pleased to announce that we now have an Ansilove extension for Firefox written by Andrew Herbert which leverages Ansilove.js and allows to view text-mode art directly in Firefox! It is available on the official Firefox Add-ons site here, and the source code is published on GitHub. This is especially handy for viewing text files online, on BBS or MS-DOS programs archives.
There is a video showing example usage here. Once again, thanks to Andy for making this happen!
Happy New Year 2014, a bit in advance!
November 24th 2013
Ansilove.js allows rendering ANSi art and all the artscene formats supported by Ansilove directly in the browser. On top of that, it also supports ANSi animations rendering, something I always wanted to add in the PHP version but could never achieve due to the fact the GD Library for PHP do not support outputing animated GIF files.
You can try it online by yourself, there is an online converter available and a demo gallery showing the animation capabilities.
This is definitely a fantastic release, and I would like to personally thank Andy for this porting effort.
July 17th 2013
Today marks 10 years since I started working on Ansilove! For the record, it was originally started to convert my ASCii and ANSi artworks to PNG images in order to create the gallery on my artscene and demoscene site which went live in September 2003. It later evolved to be the general purpose converter and library combo it is nowadays, and the first open source release happened in early 2006. Ten years and eleven releases later, I'm still maintaining this codebase and will definitely keep committed to this project.
If you want to keep up to date regarding Ansilove development, please star the repository on GitHub.
Lastly, I would like to take the opportunity to thank all the artists (past, present, and future) who submitted artwork for Ansilove and helped making the releases so colorful :)
Happy Summer 2013, and to the next 10 years! <3
October 8th 2012
Ansilove/PHP 1.10 has been released. You can download it here.
- Added new and updated documentation file in AsciiDoc format (Also available in HTML and PDF)
- Using proper bitshift instead of pow for ADF / IDF / XBIN font processing
- Skipping 'Set mode' and 'Reset mode' sequences to correctly render files saved with recent versions of PabloDraw
I'm also very pleased to mention that Ansilove has been ported to C thanks to the efforts of Stefan Vogt, Brian Cassidy, and myself. It is now fully functional and usable as a library or as a command line line converter: check out the Ansilove/C project page on GitHub.
November 22th 2011
Ansilove/PHP 1.09 has been released. You can download it here.
- Added functions in the ANSi loader to split the output into several PNG files (SPLIT_* options in the config file)
- Added support for Amiga ANSi (Bold, Italics, and Underlined characters)
- Memory usage optimization (Some data structures modified, support for 65535 lines of text)
- Relicensed under a MIT-style license
- Added Terminus font support (http://terminus-font.sourceforge.net)
Since version 1.09, Ansilove is now licensed under a (more permissive) MIT-style license, please check the LICENSE file included in the source package for more information.
July 12th 2011
Ansilove/PHP 1.08 has been released. You can download it here.
- Added new improved Amiga fonts (With corrected aspect ratio and 100% accurate characters)
- Reordered font palettes to follow the ANSi color order rather than the EGA one
- Added an error message logger (ANSILOVE_LOG_FILE option in the config file, default: ansilove.log)
- Added an option to continue rendering input files when the substitute (SUB) character is encountered (SUBSTITUTE_BREAK option in the config file, default: 1 => Stop when encountering SUB character)
- Added an option to allow enabling/disabling 80th column wrapping (WRAP_COLUMN_80 option in the config file, default: 1 => Wrap)
- Changed default background color value for CED mode (170,170,170) instead of (168,168,168)
- Added a transparent rendering mode to produce output files with transparent background (only available in ANSi loader)
- Added Workbench mode to render the input file using Amiga Workbench colors (only available in ANSi loader)
- Added scalable thumbnails support (THUMBNAILS_SIZE option in the config file)
- Added an example file for thumbnails rendering (examples/thumbnails.html)
- Added 3 example ASCiis (Thanks to: Cubon, Spidy and Spot)
On other news, Ansilove is now on GitHub as well, for those who would like to test the development version: https://github.com/fcambus/ansilove
Version 1.09 is coming in the following days, stay tuned!
May 27th 2011
Although the site has been updated a few times, I realize it has been a long time since my previous post here: almost two years have gone by...
So what's new, you may ask? The download section now has its own page, instead of the previous redirection to the sourceforge download page. I also added a "BBS Nostalgia" section including some screen captures from some old French BBSes I used to call during the second part of the nineties.
I'm now also hosting an artpacks archive which is a mirror of the Sixteen Colors archive. The synchronization is not an automated process, so I will update the archive from time to time whenever new packs or recovered lost ones are added to the repository. Once again, if you used to be involved in artscene and you happen to have old backups from that era in your possession, please help us recovering any lost gems which are still missing and nowhere to be found online. This would be greatly appreciated, thanks in advance!
Lastly, for those interested in keeping in touch, I'm now present on Twitter.
September 25th 2009
Ansilove/PHP has reached the 5000 downloads milestone this month, which is quite an achievement considering this tool is aimed at a very specified audience. I'm very pleased to see Ansilove getting more widely used and appreciated within the community, and would like to thank everyone who contributed to this project in any way!
I'm currently working on version 1.08, which will include new and improved Amiga fonts as well as a lot of requested features and improvements.
June 16th 2009
Ansilove/PHP 1.07 has been released. You can download it here.
- Added support for thumbnails rendering, with configurable maximum height
- Added customizable output color definitions in the configuration file for CED mode rendering
- Modified the ANSi parser to allow ansi sequences with inverted graphic rendition values to render correctly
May 21th 2009
Ansilove/PHP 1.06 has been released. You can download it here.
- Dumped all the fonts again to make the font collection more homogeneous and avoid minor character differences between fonts as much as possible
- Added 6 new PC Fonts (Charsets: Armenian, French Canadian, Greek (CP869), Icelandic, Persian, Portuguese)
- Fixed minor color palette problems causing the full intensity value to be 252 instead of 255
- Added customizable file extensions definitions in the configuration file for DIZ mode rendering
- Added filters removing white spaces and empty lines at the beginning and end of DIZ files
May 19th 2009
A new site using Ansilove to render Ascii characters is up at https://www.ascii-codes.com. It is an ASCii table featuring 14 MS-DOS charsets with 100% accurate and pixel precise characters faithful to the original DOS fonts!
Ansilove/PHP 1.06 is also on its way and will be released pretty soon, so be sure to check site updates on a regular basis!
April 29th 2009
Ansilove/PHP 1.05 has been released. You can download it here.
- Added support for PCBoard (.PCB) format
- Updated the documentation (README file), to cover options related to the PCBoard loader (PCB codes stripping)
- Fixed a bug preventing the CED rendering mode to operate correctly. Ansi and PCBoard files can now be rendered in CED mode again
- Added 1 example ANSi and 1 example ASCii
April 7th 2009
Ansilove/PHP 1.04 has been released. You can download it here.
- Added 9 new PC Fonts (Charsets: Baltic, Cyrillic, Greek, Hebrew, Latin1, Latin2, Nordic, Russian, Turkish)
- Fixed .DIZ file extension detection in the online converter, uploaded .DIZ files are now rendered with the exact needed number of columns
- Fixed some uninitialized variables warnings
- Added 1 example ASCii
- Added a loader (ansilove.bat) for the command line converter under Windows
- Converted the HTML templates to XHTML (ansilove.html and Ansilove online)
- Modified the Ansilove Online upload interface and corrected the maximum length value for the columns argument
- Updated the documentation (README file), which is now providing more detailed examples about all the possible options, and informations about command line converter usage under Windows
April 1st 2009
Ansilove site has been redesigned using full CSS and jQuery, and the new version is finally online! Thanks a lot to Fabts for his very precious help and his numerous tips about CSS layouts design. The links section has been updated and is now featuring a list of sites using Ansilove. The online documentation section will be updated soon, please check the README file included in the releases meanwhile.
I'm getting involved in this project again and working on a new version of the program, which will feature 9 new PC fonts and a few minor fixes. Support for PCBoard files (.PCB) is also on its way, as part of the effort to make Ansilove as complete as possible.
February 11th 2006
Ansilove/PHP 1.03 has been released. You can download it here.
MANDATORY UPGRADE! Fixes a serious content disclosure security issue!
- Added input sanitization in the loaders (load_*.php) to prevent disclosure of unauthorized content by converting files accessible by the webserver
- Added a .htaccess to restrict access (Deny to all by default) to the 'upload' directory (online converter)
- Adding '.ansilove' at the end of the uploaded filenames to prevent code injection if the upload directory access isn't restricted, and delete the uploaded file after the conversion (online converter)
- The online converter is now using the internal loaders from the library instead of the load_*.php loaders
- Added a config file to define directories path
- Added checks for requires in the online converter and in the loaders
February 9th 2006
Ansilove/PHP 1.02 has been released. You can download it here.
- Added support for IDF (.IDF) format
- Added support for TUNDRA (.TND) format
- Added support for XBiN (.XB) format
- Added online file converter
- Added CED mode to render the input file in black on gray (only available in ANSi loader)
- Added topazplus alias for topaz+ so it is possible to use it in urls
- Enforced little-endian byte order instead of machine byte order when unpacking data
- Added 3 example ANSis
- Fixed a bug in ADF converter, color 0 of the palette was set to black instead of the correct value
January 27th 2006
Ansilove/PHP 1.01 has been released. You can download it here.
- Added 6 new Amiga Fonts
- Files with a .DIZ extension are now rendered with the exact needed number of columns
- Fixed a background rendering bug in ANSi converter, which caused problems when using Amiga Font (Used font_size_x value for background block size instead of a fixed value)
- Fixed another background bug in ANSi converter (Buffer wasn't filled with black after being allocated, which caused some blocks to have an incorrect background color if nothing was drawn)
January 22th 2006
Opening of the web site and initial release of Ansilove/PHP. You can download it here.