Subscribe to Linux Format magazine - the number 1 source for Linux tutorials, reviews and news!

Development

Here's the first draft of our code. You will (obviously) need the GD library installed and be familiar with GD functions in order to understand what's going on:

<?php
    $image
= imagecreatefromjpeg("tux.jpg");
    if (
$image) {
        echo
'<PRE STYLE="font: 1px/1px Courier New;">';
        
$asciichars = array("@", "#", "+", "*", ";", ":", ",", ".", "`", " ");
        
$width = imagesx($image);
        
$height = imagesy($image);

        for(
$y = 0; $y < $height; ++$y) {
            for(
$x = 0; $x < $width; ++$x) {
                
$thiscol = imagecolorat($image, $x, $y);
                
$rgb = imagecolorsforindex($image, $thiscol);
                
$brightness = $rgb['red'] + $rgb['green'] + $rgb['blue'];
                
$brightness = round($brightness / 85);
                
$char = $asciichars[$brightness];
                echo
$char;
             }
            echo
"\n";
        }
        echo
'</PRE>';
    }
?>

If you put your own picture in there in place of tux.jpg, and make sure you give it enough time to run (it's quite an intensive task). With a 1-pixel font, the symbols should come out exceedingly small and so make the picture look very good indeed!


 

Next chapter: Analysis: ASCII art in colour >>

Previous chapter: Analysis

Jump to:

 

Home: Table of Contents

Follow us on Identi.ca or Twitter

Username:   Password:
Create Account | About TuxRadar