image-to-html

Gesponsorde koppelingen

PHP script bestanden

  1. image-to-html

« Lees de omschrijving en reacties

image_to_html.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?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);
}


?>


voorbeeld.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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');
?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.