<?
class Image2HTML{
var $image;
var $width;
var $height;
// chars used to compose image
var $chars = 'B';
function Image2HTML($image){
$file_array = explode('.',$image);
$extension = $file_array[sizeof($file_array)-1];
switch ($extension){
case 'jpg':
case 'jpeg':
$this->image = imagecreatefromjpeg($image);
break;
case 'gif':
$this->image = imagecreatefromgif($image);
break;
case 'png':
$this->image = imagecreatefrompng($image);
break;
}
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
function PickColor($x, $y){
$rgb = ImageColorAt($this->image, $x, $y);
if(imageistruecolor($this->image)) {
$r = strtoupper(dechex(($rgb >> 16) & 0xFF));
$g = strtoupper(dechex(($rgb >> 8) & 0xFF));
$b = strtoupper(dechex($rgb & 0xFF));
} else {
$i = imagecolorsforindex($this->image, $rgb);
$r = strtoupper(dechex($i['red']));
$g = strtoupper(dechex($i['green']));
$b = strtoupper(dechex($i['blue']));
}
if (strlen($r) == 1){
$r = '0'.$r;
}
if (strlen($g) == 1){
$g = '0'.$g;
}
if (strlen($b) == 1){
$b = '0'.$b;
}
$rgb = '#'.$r.$g.$b;
return ($rgb);
}
function Show(){
$print_font = true;
for ($i=0; $i<$this->height; $i++){
for ($j=0; $j<$this->width; $j++){
$color = $this->PickColor($j,$i);
if ($print_font)
echo '<font color="'.$color.'">';
echo $this->chars[rand(0,strlen($this->chars)-1)].$this->chars[rand(0,strlen($this->chars)-1)];
$print_font = false;
if ($j != $this->width){
$next_color = $this->PickColor($j+1,$i);
if ($color != $next_color){
echo '</font>';
$print_font = true;
}
}
}
echo "</font><br>\n";
flush();
$print_font = true;
}
}
}
?>
|