42 Astoundingly Useful Scripts and Automations for the Macintosh

Astounding ASCII Art

ASCII art images created using the asciiArt script of 42 Astounding Scripts and Automations for the Macintosh.

Jerry Stratton

Hello World in Amber—Wednesday, January 22nd, 2020
Hello World

I considered this for the cover, but the seventies amber was too over the top even for me.

  • ~/bin/asciiArt face.png --width 120 --palette "hello world" --sequence 0.8 --lighten 3.9 --save hello --bgcolor .995,.621,.037 --fgcolor 1,1,1

The amber I used is the color of many of the screens from the era. And many of those that were just white on black, you could buy screen overlays to make them be amber (or green). The excuse was that it was easier on the eyes, but I think the real reason is that amber and green made their screens look more like people thought a computer ought to look.

We still have that today: one of the most popular Terminal color schemes is green on black. It’s what I eventually went with for the Astounding Scripts cover.

But this amber ASCII art does highlight another feature of the ASCII art script in 42 Astoundingly Useful Scripts and Automations for the Macintosh: the ability to wash out an image, to brighten it, so as to highlight the areas with the most contrast. The original image had an off white fireplace and a window in the background. Lightening helped remove that, but it also helps when making an image like this to use a photo editor, such as GIMP or GraphicCoverter, to remove everything around the focus of the image. In the end I used the magic wand in GraphicConverter to get rid of the background. The lightening got rid of the lines on my face, highlighting the silly Incredibles Kleenex mask, hair, and shirt.

The argument --lighten 3.9 multiplies every color in the image by 3.9; the argument --sequence 0.8 tells the script to not only use the palette in order (so that it spells “hello world” instead of assumes that those letters are in order by density) but to cut off the sequence when the combined grayscale exceeds 0.8. If you look at the script itself, you’ll see that the default cutoff is 1.0; since there is no way for a greyscale to exceed 1.0 (colors range from 0.0 through 1.0), normally there is no cutoff at all.

Technically, there’s no need to have both a sequence cutoff and a lightening. Providing a low sequence cutoff should have the same effect as providing a high --lighten. I found it easier to conceive of a lightening of the image than a reduction of the cutoff, however. Partly this is because if the lightening brings the greyscale above 1, I have the script set it to 1, so that a non-sequential palette continues to work. A greyscale above 1 would fail, because the palette is normalized to range from 0.0 to 1.0. This also allows for inverting the greyscale value by subtracting it from 1.0; this would make no sense if greyscale values could exceed 1.0.

Computers and Serial Imagery—Saturday, November 16th, 2019

“The tradition of serial imagery in painting began with Monet who, being vitally concerned with light, often painted the same object or scene repeatedly under varying light conditions… Since Monet, many painters (mostly abstract) have worked serially. Andy Warhol, with his painted (and printed) series of movie stars, Mona Lisas, soup cans, coke bottles, etc. is the foremost serial artist today.”

ASCII art has always fascinated me. So when I ran across Laurence Press’s article in the old Artist and Computer collection, it inspired me to write the asciiArt script for 42 Astounding Scripts.

I ended up not using his greyscale palette, however, mainly because it required too much choice for a script. Most of the letters appear multiple times in his palette. That said, it’s not a bad palette. Choosing somewhat randomly from his 8-level list, the palette --palette "#OX*+=- " produces recognizable ASCII art for complex images.

He also suggests inserting “arbitrary material”, which is what I called “sequential” in the book: using a word or phrase for all non-white sections of the image.

He has some very interesting ideas that I did not use for the script, but which you could program in if you wanted, such as randomly adding noise to the non-white or the white sections.

But also interesting is how unsure he is that using computers for art is a worthwhile use of computer time.

It is uncomfortable to be begging for ‘bootleg’ time. The problem is that computer art doesn’t really fit anywhere. Neither computer scientists and computer science departments, nor artists and art departments generally take it seriously enough to underwrite experimentation. Perhaps this is as it should be, or perhaps the quality of our work will win a place for computer generated art, I think that the jury is (justifiably) still out.

I think the jury is in today about whether using computers for artwork is a worthwhile use of computer time. And that’s partly because a few years after he wrote that, he’d have been able to go out to the local Radio Shack and buy a complete computer that could do what he had to use “bootleg time” for in 1975.

A thousand points of color: give your photos a pointillist turn—Wednesday, October 16th, 2019

I wrote in Astounding Scripts about using option-8 as the sole palette when creating ASCII images in color. It creates an interesting pointillist effect.

[toggle code]

  • asciiArt "Yellow Rose.jpg"  --colors --width 150 --palette "•"

Use the flower photo at Yellow Rose of Los Angeles (JPEG Image, 249.0 KB). You’ll probably also want to change the width to match your Terminal window (or change your Terminal window’s width to match 150 characters), but it should come out looking like this:

You may also want to play around with different background colors. I tried white and black, but surprisingly the effect is more pronounced with the default green background.

It can create an interesting effect to save it as a PNG file as well. The PNG version has more colors, because PNG allows more colors than the Terminal does. With only eight colors, the Terminal version is starker. The PNG version is both more colorful and more faded.

[toggle code]

  • asciiArt "Yellow Rose.jpg"  --colors --width 150 --palette "•" --save yellow.png --quiet

You can, of course, adjust the density of the image by adjusting the width from 150 characters across to more or less.

Unlike most ASCII art, which prefers simple images, this technique can work with any image. It even worked on the photo of me wearing a Mr. Incredible mask, which I used as the example in the book.

It’s not quit pointillism. That requires the points to be close enough together to merge with each other. There is enough space between the option-8 bullet to keep the points separate when viewed closely or at a large size, and to strongly fade the image when viewed from a distance or at a small size. This is more like the accidental child of Seurat and ASCII. In Seurat’s images, the image is brought out through closely-drawn dots. With this technique, the image is veiled by well-separated dots.

Commemorate Patriot Day with Betsy Ross—Wednesday, September 11th, 2019

The asciiArt script from 42 Astoundingly Useful Scripts and Automations for the Macintosh is astoundingly useful, as the title of the book implies, and can be used for a wide variety of purposes. I originally made this image for Independence Day, overlaying the Declaration of Independence on a drawing of the Betsy Ross flag. The Betsy Ross flag’s simple design is perfect for sequential ASCII art. The circle is a simple geometric element that shows up when placed in text; the stars of the modern 50-star flag get muddled unless the text is made so small as to be unreadable.

  1. Download the Betsy Ross flag for use with the asciiArt script: Betsy Ross flag (PNG, 24.9 KB)
  2. Place it in a folder where you can run the asciiArt script.
  3. Open the Terminal.
  4. Type “cd”, a space, and then drag your work folder onto the Terminal. Press the RETURN key, and you’re ready to create ascii art from the Betsy Ross flag.

Because the flag is such a simple design, when recreating it using text for the greyscale it makes more sense to keep the number of characters small. Here’s the Betsy Ross flag with just the asterisk, equals, and exclamation:

  • ~/bin/asciiArt "Betsy Ross Flag.png" --palette "*=! "

Older posts