Thinkgeek is selling Tux posters made out of the linux Kernel code. See an example here.

it's writted by Jon at Thinkgeek, and I had a conversation via email with him, and thought I would post the results as the script that created this was written in PERL and we happen to be the PerlMonks. So for your reading enjoyment....

I ( Macphisto/001011110 ) wrote:

Jon, huh? You're the one that coded the Perl program for the Tux Poster using the Kernel. I don't want any of your trade secrets, but I'm just curious as to how you did that. Did you make the text of the kernel opaque and then overlay them on the image or some other way? Either way, very very cool script.

Regards
Scott A Runnels
Jon replied:
As for the Tux poster, I'm guilty as charged on that one. We'll be releasing it under the GPL soon anyway, so there's no reason I can't briefly explain how it works...

Basically, the image is read in, dimensions are gathered and used to determine how many characters can be fit vertically and horizontally while keeping the same aspect ratio of the original image. Given the page size and those characters/line counts, the font size is determined. Then the script just loops through each line, pixel by pixel. If the pixel is transparent, it skips it. If it isn't, the color of the pixel is figured out and the next character in the source text file is positioned and colored on the page. All of this is done with basic PostScript commands. Once the end of the image is reached, the PostScript commands are all written out to an ASCII file which can then be read/parsed by anything that understands PostScript (like ghostview, Acrobat, Illustrator, etc.). That makes the resulting "image" fully scalable and portable between any platform and dozens of programs, so you could plaster the side of a building with it and it would still look good.

Anyway, I'm babbling. ;)

Take care!
Jon
The rest is mixed banter...I'll note where needed...

Scott:
Hmmm, questions questions....

First: How did you figure out the color of the pixel? Can you do that in PERL ( I've only been programming in PERL for about a year now and I haven't come across anything like it ) or is it Postscript?
Jon:
To actually read in the image and get dimensions, pixel data, etc., I use the Image::Magick library which you can get from CPAN. It makes image manipulation _very_ easy. You'll need to install the ImageMagick libraries (which are in C, and are relatively likely to already be on your system), and then Image::Magick (aka PerlMagick), which is the actual Perl interface to ImageMagick.

But getting the RGB value (which is needed for PostScript) can sometimes be a little tricky. Some images store their colors as RGB values, which makes it easy. But others store them as Hex triplets (i.e. "FFFFFF" for white), which isn't too tough, you just have to catch those and run hex() on each part of the triplet. And yet others use X11 color names (i.e. "white", "navajo white", "grey40", etc... look in /usr/X11R6/lib/X11/rgb.txt for the complete list). The X11 color named ones are the annoying ones, but luckily all the RGB values for each color name are in that same file.
Scott:
Second: What's the capitol of Nebraska
Jon:
Lincoln, in Lancaster Co. ;)
Scott:
Third: Is this just something you decided to do someday or did someone ask you to do it? Either way, I am highly impressed...Can I have your brain? I'll trade you this tasty door stop!
Jon:
Mmmmmm.... door stops.... ;)

It was just a neat little script I wanted to write, and then we figured we'd use it to make a couple posters or similar items. We are going to do a couple other things with it in the near future, hopefully... not just the Tux poster.
Scott:
I might just skip out of work early some day and try to drop by to see what you folks are up to, steal all your secrets, buy you out, drive my enemies from the company and hear the lamentations of their women...I've said too much.

Hope you Enjoyed it....

001011110

Replies are listed 'Best First'.
RE: Tux Kernel Poster
by turnstep (Parson) on Jul 19, 2000 at 04:41 UTC
(crazyinsomniac) RE: Tux Kernel Poster
by crazyinsomniac (Prior) on Jul 19, 2000 at 02:52 UTC
    What kind of format is the image in?
    Doesn't png2html do the same thing?
     ______________________________________________
    |_____¸.·ooO--(> cRaZy is co01. <)--Ooo·.¸_____|
     ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
    
      Actually that was just an HTML representation of the Post. I'm not sure what the picture is ( .jpg or .gif, or whatever ) when the perl script is through. It should be GPL soon.


      The beatings will continue until morale raises.

        Floggings will continue until morale improves.

        flogging: - a whipping, or fellatio
        I know it was an HTML rep. png2html(open source of course) converts .PNG images 2 HTML.

        I was wondering if they used a variation of png2html, because that's what it looks like, in which case they should give credit to the authors.

         ______________________________________________
        |_____¸.·ooO--(> cRaZy is co01. <)--Ooo·.¸_____|
         ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
        
RE: Tux Kernel Poster
by lolindrath (Scribe) on Jul 19, 2000 at 04:57 UTC
    One is hanging on the wall of my room right now, ThinkGeek.com rules way too much!
    --=Lolindrath=--
RE: Tux Kernel Poster
by TStanley (Canon) on Jul 19, 2000 at 03:06 UTC
    Extremely COOL!!

    TStanley