I hereby decree

by David LeMieux


NASA Image -> HTML/JS -> Poster

Recently I used one of my JS/Canvas Experiments to make a real poster print (through Zazzle). I started with a public domain image from NASA of the STS-130 lifting off from the launch pad.

The Original

Next I ran it through my Qaudrant algorithm with a few tweaked settings, making the output five times as large as the original image. I did this because I wanted the print to be at least 350 ppi and the output is normally 72 ppi. 72 x 5 = 360. I also added extra width to the borders to make them more apparent in the print.

Normally the output looks like this:

Regular Output
Regular Output

But I changed the settings and removed the fills and got this:

Configured Output with Lines
Configured Output with Lines

The image processing recursively divides the image in to quadrants and if a given quadrant meets a certain color-similarity threshold it will make that quadrant the average or most common color within. The effect is that areas with more detail (defined by more color) get smaller, more details boxes. It is really effective at tracing clouds. You can watch it work in real time (modern browser recommended)

It turns out that Google Chrome has a hard time managing large image data url strings (the output from the manipulated canvas image) and so the 5x increase would often times crash my browser. To make it work I would output the data url string to the console (this, too, would tax the system, a 4.5Mb string is a beast to manage it would seem) and then I copied it in to a separate file. I then used the file contents and ran it through a PHP script which then rendered the final image as output.

A little cropping in photoshop and I uploaded the file, sent it to the printer, and got this:


Aside from cropping I did no re-touching in photoshop. When I do it again I might adjust the brightness/contrast for a better print. I might also try to calibrate my monitor so I get a better feel for it. I might also use glossy poster paper instead of matte.

Overall I am satisfied. There is something nice about having a physical object. I plan on trying more, perhaps with different printers or options and sizes.

UPDATE: Here is the final output (3.4Mb)


blog comments powered by Disqus