afbeeldingvergelijker

Gesponsorde koppelingen

PHP script bestanden

  1. afbeeldingvergelijker

« Lees de omschrijving en reacties

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
<?php
/**
 * This script is made under the GNU / GPL licence
 * The author's name _MUST_ stay intact
 *  
 * @author Jason de Ridder
 * @copyright Jason de Ridder
 * @param string $img1
 * @param string $img2
 * @param string $ttf The TrueType Font locationn
 */

function compare_images($img1, $img2, $ttf) {
    /* Create image */
    $img1_str = file_get_contents($img1);
    $img2_str = file_get_contents($img2);
    
    $img1_res = imagecreatefromstring($img1_str);
    $img2_res = imagecreatefromstring($img2_str);
    if($img1_str == $img2_str) {
        //return 100;
    }
    
    /* Image size */
    $img1_w = imagesx($img1_res);
    $img1_h = imagesy($img1_res);
    
    $img2_w = imagesx($img2_res);
    $img2_h = imagesy($img2_res);
    
    /* set new width / height */
    if($img1_w > $img2_w) {
        $new_width = $img1_w;
    }

    else {
        $new_width = $img2_w;
    }

    
    if($img1_h > $img2_h) {
        $new_height = $img1_h;
    }

    else {
        $new_height = $img2_h;
    }

    
    $tmp_img = imagecreatetruecolor($new_width, $new_height);
    
    imagecopyresampled($tmp_img, $img1_res, 0, 0, 0, 0, $new_width, $new_height, $img1_w, $img1_h);
    $img1_res = $tmp_img;
    
    unset($tmp_img);
    $tmp_img = imagecreatetruecolor($new_width, $new_height);
    
    imagecopyresampled($tmp_img, $img2_res, 0, 0, 0, 0, $new_width, $new_height, $img2_w, $img2_h);
    $img2_res = $tmp_img;
    
    // At this point the two images are same sizes
    // Now will come all the calculating

    $total_points = ($new_height * $new_width) / 2;
    $match_points = 0;
    for($i = 0; $i < ($new_width / 2); $i++) {
        for($j = 0; $j < $new_height; $j++) {
            $tmp_img = imagecreatetruecolor(2, 1);
            $tmp_img2 = imagecreatetruecolor(2, 1);
            imagecopyresampled($tmp_img, $img1_res, 0, 0, 2 * $i, $j, 2, 1, 2, 1);
            imagecopyresampled($tmp_img2, $img2_res, 0, 0, 2 * $i, $j, 2, 1, 2, 1);
            imagegif($tmp_img, 'tmpImg.gif');
            imagegif($tmp_img2, 'tmpImg2.gif');
            $str_tmp_img = file_get_contents('tmpImg.gif');
            $str_tmp_img2 = file_get_contents('tmpImg2.gif');
            if($str_tmp_img == $str_tmp_img2) {
                $match_points++;
            }

            unset($tmp_img);
            unset($tmp_img2);
            if(($i * $j) % 500 == 0) {
                sleep(0.5);
            }
        }
    }

    $percentage = floor((100 * $match_points) / $total_points) . '%';
    imagecopymerge($img1_res, $img2_res, 0, 0, 0, 0, $new_width, $new_height, 50);
    $red = imagecolorallocate($img1_res, 255, 0, 0);
    imagettftext($img1_res, 10, 0, 5, ($new_height / 2) - 12.5, $red, $ttf, 'Images matches for:');
    imagettftext($img1_res, 20, 0, 40, ($new_height / 2) + 12.5, $red, $ttf, $percentage);
    header('Content-type: image/png');
    imagepng($img1_res);
}


?>

 
 

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.