KOMPOOS.NL

ascii art

home » php » text-effects » ascii-art.html

sitemap


uitleg ascii art script

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

ascii script voor de head-sectie


<?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>';
?>

ascii script voor de body-sectie


<?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;}
?>
Gebruik voor alle voorbeelden op de http://kompoos.nl een valide html5 pagina.