EDSCII is an ASCII/ANSI art tool with support for arbitrary character sets and color palettes.
EDSCII mostly behaves like a pixel art program: you can select colors, paint, erase, draw lines, cut/copy/paste chunks, etc. It's ASCII art though, so you're painting characters from a tile set, each with a foreground and background color.
EDSCII supports any character set or color palette you throw at it. Included with the build are things like the Commodore 64 (PETSCII) set and palette, PC-DOS characters, the DOS EGA palette, the ZX Spectrum set and palette, the Atari 8-bit computer set and palette. These can give your ASCII art a radically different look.
EDSCII can also convert a raster image into ASCII art using any character set + color palette combination:
videoHere's an annotated video showing some basic editing features:
download + runningdownload the alpha 5 build (includes Windows EXE and source)
If you have Python and PyGame installed, you can also easily run the latest version of EDSCII from source on Windows, OSX and Linux.
EDSCII has a help screen that explains all keyboard shortcuts and commands. Press H to access it.
View the readme
View the TODO list
image conversionDetails on the raster image conversation process:
- Shrink the image to the size of the current view, preserving aspect ratio.
- Convert the image into L*a*b* color space for more accurate perceptual color comparisons. Earlier versions didn't do this and the change in quality is dramatic.
- Floyd-Steinberg dither the image to the target color palette.
- Divide the image into blocks, each the size of a character from the target character set.
- Compare each block from the image against each character in the tile set, testing all appropriate foreground-background color combinations.
- Determine which character/color works best (or falls within a configurable threshold) and commit that to the image.
Unfortunately, this is a lot of brute force pixel comparisons and so the process is quite slow, taking a few minutes on my (admittedly 6 years old) dual-core PC to process the images shown above. Hardware-accelerating the process would be possible but quite non-trivial.