Image to Variable Width ASCII Art Conversions

*** Variable width conversions were added in version 0.6.0, Original post follows: ***

Good news: The idea I had to do variable width ASCII art works.
Bad news: It’s ridiculously slow and totally unworkable. Currently takes around 5 minutes to do a small image.

Edit – Down to about 10 seconds to do the conversion. Still not fast enough but it’s getting there.
Edit2 – Now 0.25 seconds, and I can still optimise the design a lot more.

Just to show I’m not making this up:
First variable width conversion
It’s in Microsoft Sans Serif 8pt, and the aspect ratio isn’t right, but you get the idea.


It’s been a while. I haven’t stopped writing the program, it’s just that I keep starting new features but not finishing them.

Next Version
The next release will have the text brightness/contrast controls replaced with a levels adjustment control. It’s a bit of a big change, but it’s working in a test application and the output is really nice. I’m doing this because contrast was basically useless when the output was being stretched, and adjusting levels gives a much better control. I’ll cover how to use it in more detail when it’s done.

Currently, I’ve finished the code to apply the levels and I’m writing the control to do it in the program. I wanted to do it right, so I actually sat down and designed it and came up with a good internal class design (I’ll have to upload the UML class diagram somewhere or nobody will notice). Hopefully a working version will be in the cvs in a few days.

.Net Framework 2.0
I wasn’t going to move to .Net 2.0, but since Microsoft are giving away the basic program it seems silly not to upgrade. This means that you will have to install the .Net framework 2.0, either through Windows update, or here.

It won’t be the next version, but it will happen when I’ve properly converted and tested everything.

The main differences will be:
– Better programming environment. It’s so nice <3
– Dockable menu and toolbar, both with a WindowsXp style
– Faster execution (apparently)
– TextRenderer class should let me remove all the native pinvoked code


Beta 4.0 should be released in a few days. I finally finished separating the conversion code from the main form, and batch conversion is up and working in the cvs.


I’m back and I’ll upload a new version to fix a couple of small bugs later today or tomorrow.

:siren: Please stop requesting batch conversions. :siren:
I’m gradually doing some internal things that need to be changed before I can do multiple images, but I will get around to it eventually. How I’ll fit it in the program is anyone’s guess.

New version soon

Automatic generation of ASCII ramps for the current font is in the CVS and working quite well. I need to try and optimize it a little more, but I don’t know if I can without using unsafe code (which I’m avoiding).

New version will either be 0.2.10 or 0.3.0, I’m not sure yet.


The project has been kind of dead for the past month as I wasn’t getting anywhere with it, so I took a few weeks off to get some perspective. I also learnt php + sql (so easy!), tried out Visual Studio 2005 beta 2 (nice but not worth me changing until it’s at least out of beta), and played a lot of gunz (awesome game).

Anyway, I’m back and I’ve decided that the interface needs to be changed. It’s just a little too… blah? and there’s something not right. I’ve already altered it a little in the cvs, but there are still some changes needed. The brightness/contrast widgets need to be a lot smaller, and the bottom part of the text page needs to be removed all together. Ideally I’d also like to get rid of the tab control, but I haven’t been able to come up with anything better.

There are also a lot of internal things that need to be changed before I can do things like batch processing, running from the command line and saving/loading conversion settings.


My plan was to update this blog with each new major feature (which would have a major version update, ie ?.x.?) but it’s taking too long so I’ll just update this randomly. If you just want to be told when new versions are released, Sourceforge has an rss feed here: (under File Releases).

There are a lot of little changes since the first release, the main one being my floating control widget things. Plus, lots of bug fixes so check it out.

I started writing a way to select an area of the image and decided that it wasn’t possible at the speed my picturebox class was updating. I’ve spent a lot of time rewriting it basically from scratch and it’s now pretty slick, so Beta 1.6 will be out in a few days after I’ve finished testing it, and the I can start implementing the area selection stuff.

This blog has been upgraded to the latest version of WordPress and comments are activated again, now with a captcha check so hopefully the spam will go away. Feel free to leave a message!