image_to_html.php
[code]
<?php
function image_to_html($source_img, $text = '#', $text_size = 10, $max_ex_time = 0)
{
	ini_set('max_execution_time', $max_ex_time);
	
	//Vervangen van de spaties die verpesten de 'layout'
	$text = str_replace(' ', '_', $text);
	
	switch(strtolower(get_extension($source_img)))
	{
		case'jpg':
		{
			$img = imagecreatefromjpeg($source_img);
			break;	
		}
		case'png':
		{
			$img = imagecreatefrompng($source_img);
			break;	
		}
		case'gif':
		{
			$img = imagecreatefromgif($source_img);
			break;	
		}
	}
		
	//Stop het script als er een error is.
	if (!$img)
	{
		exit;
	}
	
	
	//Krijg een array met elke letter van de tekst er in
	$text = preg_split('//', $text, -1, PREG_SPLIT_NO_EMPTY);
	
	//Deze gaan we nodig hebben omdat we zodalijk door de 
	//array van hierboven heen gaan om steeds de volgende letter te nemen.
	$text_lenght = count($text) -1;
	$i = 0;
	
		
	$last_colour 	= '';
	$current_colour = '';
	$img_width 		= imagesx($img);
	$img_hight 		= imagesy($img);

	ob_start();
	//Nog even snel de style er voor gooien
	echo"<style>
	font {
		line-height: 0.7;
		font-size: ".$text_size."px;
	}
	</style>";
	
	//Loop'en door het plaatje heen
	for ($cy=0; $cy < $img_hight; $cy++)
	{
		for ($cx=0; $cx < $img_width; $cx++)
		{
			$rgb = imagecolorat($img, $cx, $cy);
			$colour = imagecolorsforindex($img, $rgb);
				
			$last_colour = $current_colour;
			$current_colour = sprintf('%02x%02x%02x', $colour['red'], $colour['green'], $colour['blue']);
	
			//We kijken of de laatste kleur gelijk is aan de vorige dan hoeven we 
			//niet helemaal de font tag er weer omheen te zetten
			if ($last_colour == $current_colour)
			{
				//ze zijn het zelfde we kunnen gewoon de tekst echo'en
				echo $text[$i];
			}
			else
			{
				echo '</font><font style="color:#'.$current_colour.'">'.$text[$i];
			}
	
			//als we aan het einde zitten van ons word of zin beginnen we opnieuw.
			$i = ($i == $text_lenght) ? 0 : $i + 1; //Iemand enig idee waarom $i++ hier niet werkt?
		}
		echo "\n";
	}
	$_txt_img = ob_get_clean();
	return $_txt_img;
}


function get_extension($file)
{
	if (strpos($file, '.') === false)
	{
		return false;
	}

	$file = explode('.', $file);
	return array_pop($file);
}

?>
[/code]

voorbeeld.php
[code]
<?php
include('image_to_html.php');

//hoeft niet, maar maakt hiermee verkleint hij 
//het gene dat naar de browser gestuurd word
ob_start("ob_gzhandler");


echo image_to_html('plaatje.gif', 'Phphulp');
?>
[/code]