Plaats het script voor de head-sectie in de head sectie van de pagina en het stuk script bedoeld voor de body, in de body-sectie van de pagina. In het head-script staat bij de variabele $ascii_art_afbeelding de file: "ascii-art.png" ingevuld. Kopieer deze afbeelding naar jouw webruimte om deze procedure te kunnen testen. Vervang op een later tijdstip de afbeelding met één die voor jouw webpagina bedoeld is. Op de plaats waar je in de body het php ascii script hebt geplaats zal de "art" afgebeeld worden. Om deze procedure op een html-pagina uit te voeren moet de pagina wel in staat zijn om php te parsen. Volg de procedure om php te parsen op een html-pagina om dit mogelijk te maken.
kompoosheeftdebestescriptskompoos heeftdebestescriptskompoosheeftde bestescriptskompoosheeftdebestesc riptskompoosheeftdebestescriptsko mpoosheeftdebestescriptskompooshe eftdebestescriptskompoosheeftdebe stescriptskompoosheeftdebestescri ptskompoosheeftdebestescriptskomp oosheeftdebestescriptskompoosheef tdebestescriptskompoosheeftdebest escriptskompoosheeftdebestescript skompoosheeftdebestescriptskompoo
<?php
$ascii_art_afbeelding = ImageCreateFromPNG('ascii-art.png');
if ($ascii_art_afbeelding){
$breedte = imagesx($ascii_art_afbeelding);
$hoogte = imagesy($ascii_art_afbeelding);
$ascii_kleur_nieuw = kleur_ascii($ascii_art_afbeelding,$breedte,$hoogte);
$de_tekst = preg_split('//','kompoosheeftdebestescripts',-1,PREG_SPLIT_NO_EMPTY);
$lengte_tekst = count($de_tekst) -1;
$i = 0;
$laatste_kleur = NULL;
$een_kleur = NULL;
ob_start();
for ($cy=0; $cy<$hoogte; $cy++){
for ($cx=0; $cx<$breedte; $cx++){
$rgb = ImageColorAt($ascii_art_afbeelding,$cx,$cy);
$kleuren = imagecolorsforindex($ascii_art_afbeelding,$rgb);
$laatste_kleur = $een_kleur;
$een_kleur = sprintf('%02x%02x%02x',$kleuren['red'],$kleuren['green'],$kleuren['blue']);
if ($laatste_kleur == $een_kleur){
echo $de_tekst[$i];}
else{
$style = array_search($een_kleur,$ascii_kleur_nieuw);
if ($style != NULL){
echo '</span><span class="c'.$style.'">'.$de_tekst[$i];}
else{
echo '</span><span style="color:#'.hexopt($een_kleur).'">'.$de_tekst[$i];}}
$i = ($i == $lengte_tekst) ? 0 : $i+1;}
echo "\n";}
$inhoud = '<pre class="a">'.ob_get_clean();
echo '<style type="text/css">.a{line-height:0.6}';
unset($ascii_kleur_nieuw[0]);
foreach ($ascii_kleur_nieuw as $key => $value){
echo '.c'.$key.'{color:#'.hexopt($value).'}';}
echo '</style>';
?>
<?php
$inhoud = str_replace('<pre class="a"></span>',NULL,$inhoud).'</span>';
echo '<pre class="a">'.$inhoud.'</pre>';}
else{
echo 'oeps,er gaat wat fout';}
function kleur_ascii($ascii_art_afbeelding,$breedte,$hoogte){
$een_kleur = NULL;
$laatste_kleur = NULL;
for ($cy=0; $cy<$hoogte; $cy++){
for ($cx=0; $cx<$breedte; $cx++){
$rgb = ImageColorAt($ascii_art_afbeelding,$cx,$cy);
$kleuren = imagecolorsforindex($ascii_art_afbeelding,$rgb);
$laatste_kleur = $een_kleur;
$een_kleur = sprintf('%02x%02x%02x',$kleuren['red'],$kleuren['green'],$kleuren['blue']);
if ($laatste_kleur != $een_kleur){
if (isset($kleur_ascii[$een_kleur])){
$kleur_ascii[$een_kleur]++;}
else{
$kleur_ascii[$een_kleur] = 1;}}}}
$kleur_opties_ascii[] = NULL;
foreach ($kleur_ascii as $key => $value){
if ($value > 1){
$kleur_opties_ascii[] = $key;}}
return $kleur_opties_ascii;}
function hexopt($dehex){
$dehex = preg_replace('/#((\d|[A-F])\\2)((\d|[A-F])\\4)((\d|[A-F])\\6)/i','#\\2\\4\\6',$dehex);
return $dehex;}
?>