jp2a is a small utility that converts JPG images to ASCII.
It's written in C and released under the
GPL.
Download
jp2a from Sourceforge.
Windows users will find a binary download there.
You can view an online jp2a gallery and try for yourself over at
asciiconvert.com.
Check out the
JPEG screenshots of jp2a.
Here are some other images in plain text:
Here are some color HTML-images:
Compilation of jp2a
requires jpeglib with
libcurl as a recommended option.
On many systems you can just do the following to compile jp2a:
./configure
make
make test # optional
make install
If you have jpeglib installed in non-standard directory, say in /opt/local/include/jpeglib.h and /opt/local/lib/libjpeg.a then you can
do
./configure --with-jpeg-prefix=/opt/local
Download the sources from
IJG.org and build them like for instance this:
./configure --prefix=/usr
make
make install-lib # simply make install is not good enough for jp2a
jp2a is now part of
DarwinPorts, so if you do a
sudo port install jp2a
then everything should be installed.
In normal operation, you'd use jp2a with something like
jp2a --width=76 file.jpg
However, if you want to be able to read other graphics-formats, you can use
ImageMagick's
convert program
with pipes, like
convert somefile.png jpg:- | jp2a --width=76 -
Convert is a very nice utility, letting you set a lot of options that might
enhance the ASCII output (e.g. by setting contrast and brightness). Another example,
increase brightness by 170% and then rotate 45 degress clockwise:
convert bender.bmp -modulate 170 -rotate 45 jpg:- | jp2a -
Convert handles
just about any graphics-format you can think of, including video formats and
vector formats like PDF and Postscript (handled by convert using Ghostscript).
jp2a now handles downloading by using
libcurl. Just do this:
jp2a http://foo.bar/image.jpg
If you didn't compile jp2a with curl, you can use another HTTP reader and pipe the result to jp2a:
For instance, to download and convert the
Google logo
all on the fly, you can do this:
convert http://www.google.com/intl/en/images/logo.gif jpg:- | jp2a -
....... .':.
.::'....':xd. dX'
.ld. .. . oX. ...
;O' .c;..'cxc ;,...,c;. .:'.,lxc. dX. ,:'.,dx.. .
oO. .ox. ,x0 .cd. .cd..ll l0. xX. :K,..,::.
cxx. .',cl 'x0 lK'.cx ;k, lO; .ll. dX. o0:
,dkc. :kd :kx. :d; ,ol. .lc. .''lk' kX' oOo'...
.;:cc;,,',,. .;;,'.. .,,'... ''',:lxo. .','. .,::;.
.oc. dO
lk;....'c'
.'....
I wanted a small project to teach myself how to use various libraries and autotools.
If you have any suggestions or code patches, I will be very glad to hear from you.
You can email me to
csl@sublevel3.org.