Задачка с 2-мя картинками

Discussion in 'PHP' started by TANZWUT, 25 Nov 2007.

  1. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    есть 2 картинки в формате Jpg, я их переделаю в формат Bmp, обе одинакового размера. надо сравнить их по пикселам по цвету, вывести кол-во одинаковых и разных пикселов. интересует сабж - чем это можно сделать.
     
    _________________________
  2. halkfild

    halkfild Members of Antichat

    Joined:
    11 Nov 2005
    Messages:
    365
    Likes Received:
    578
    Reputations:
    313
    ну можно на пхп, можно на с.. инструментарий без разницы..

    открываешь файл.. делаешь смещение на служебную инфу.. типа: размер битность и тд.. а потом побайтно читаешь и сравниваешь

    *Добавлено все намного проще если юзать графику пхп

    PHP:
    <?php

    function get_colors($location) {
        
    $image imagecreatefromjpeg($location);
        
    $size getimagesize($location);
        for (
    $w 1$w $size[0]; $w++) {
            for (
    $h 1$h $size[1]; $h++) {
                
    $colors[$w."x".$h] = imagecolorat($image$w$h);
            }
        }
        
    imagedestroy($image);
        return 
    $colors;
    }

    function 
    check_images($colors1$colors2) {
        
    $ok 0;
        
    $pixels1 sizeof($colors1);
        
    $pixels2 sizeof($colors2);
        if (
    $pixels1 != $pixels2) {
            return 
    false;
        }
        foreach (
    $colors1 as $key => $value) {
            if (isset(
    $colors2[$key]) && $colors2[$key] == $value) {
                
    $ok++;
            }
        }
        
    $new_percent = ($ok $pixels1) * 100;
        return 
    round($new_percent2);
    }

    $image1 get_colors("image1.jpg");
    $image2 get_colors("image2.jpg");

    $result check_images($image1$image2);

    if (
    $result) {
        echo (
    $result 70) ? "Картинки одинаковые" "Картинки разные";
        echo 
    "<br />\n";
        echo 
    "Процент совпадения: ".$result."%";
    }

    ?>
    соурс видел где-то в нете на слаеде вродь
     
    _________________________
    #2 halkfild, 25 Nov 2007
    Last edited: 25 Nov 2007
    3 people like this.
  3. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    с меня кодер как с ... думаю ты понял:) иначе бы не просил.
    мне админ с одного развлекательно-убойного-угарного сайта обещал за поиск расзличий в картинках:
     
    _________________________
  4. demonoid

    demonoid Banned

    Joined:
    12 Jan 2007
    Messages:
    101
    Likes Received:
    111
    Reputations:
    27
    Это можно сделать : Perl + GD( Library )
     
    2 people like this.
  5. halkfild

    halkfild Members of Antichat

    Joined:
    11 Nov 2005
    Messages:
    365
    Likes Received:
    578
    Reputations:
    313
    выше описана реализация на пхп с отображением процентного соотношения схожести
     
    _________________________