Php-Code:
<?php
function getcolor($px,$py,$img,$size)
{
$get_color = imagecolorat($img,$px,$py);
$color = imagecolorsforindex($img,$get_color);
$red = sprintf("%02x", $color["red"]);
$green = sprintf("%02x", $color["green"]);
$blue = sprintf("%02x", $color["blue"]);
$colorcode = $red . $green . $blue;
return $colorcode;
}
echo "
<form method='post' action='$_SERVER[PHP_SELF]'>
<input type='text' name='input'></input>
<input type='submit' value='Umwandeln'></input>
</form>";
if (!empty($_POST['input']))
{
$img = imagecreatefromjpeg($_POST['input']);
$size = getimagesize($_POST['input']);
$stepping = ceil($size[0] / 120); // beeinflusst die maximale Breite an Buchstaben.
echo "<p style=\"font-size: 6pt;line-height: 3pt; font-family: monospace\">";
for ($i=0; $i<$size[1]; $i += $stepping)
{
for ($j=0; $j<$size[0]; $j += $stepping)
{
$colorcode = getcolor($j,$i,$img,$size);
echo "<span style=\"color: #$colorcode;\">O</span>";
}
echo "<br />";
}
echo "</p>";
}
?>
Eine weitere Möglichkeit ist es, anstatt Farben verschiedene Buchstaben zu verwenden, diese werden anhand eines Schwellenwertes eingestellt, wie dies aussehen könnte, ist auch unter Verschiedenes zu sehen. Im dargestellten Skript wird das Bild mittels "0" und "1" ausgegeben.
Php-Code:
<?php
function getcolor($px,$py,$img,$size)
{
$get_color = imagecolorat($img,$px,$py);
$color = imagecolorsforindex($img,$get_color);
$red = $color["red"];
$green = $color["green"];
$blue = $color["blue"];
$helligkeit = ($red + $green + $blue)/3;
if ($helligkeit <= 100) $zeichen = "0";
if ($helligkeit > 100) $zeichen = "1";
return $zeichen;
}
echo "<form method='post' action='$PHP_SELF'>
<input type='text' name='input'></input>
<input type='submit' value='Umwandeln'></input>
</form>";
if (!empty($_POST['input']))
{
$img = imagecreatefromjpeg($_POST['input']);
$size = getimagesize($_POST['input']);
$stepping = ceil($size[0] / 60);
echo "<font style=\"font-size: 10pt;line-height: 5pt; font-family: monospace\">";
for ($i=0; $i<$size[1]; $i += $stepping)
{
for ($j=0; $j<$size[0]; $j += $stepping)
{
$zeichen = getcolor($j,$i,$img,$size);
echo $zeichen;
}
echo "<br>";
}
echo "</font>";
}
?>
Weitere Informationen kann man sich in folgendem Buch holen, das liegt bei mir auch immer griffbereit zur Referenz an der Seite:
PHP 5 / MySQL 4 Studienhandbuch