Показать сообщение отдельно

  #2  
Старый 25.11.2007, 15:29
halkfild
Постоянный
Регистрация: 11.11.2005
Сообщений: 391
С нами: 10787366

Репутация: 2277
По умолчанию

ну можно на пхп, можно на с.. инструментарий без разницы..

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

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

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_percent, 2);
}

$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."%";
}

?>
соурс видел где-то в нете на слаеде вродь

Последний раз редактировалось halkfild; 25.11.2007 в 15:50..
 
Ответить с цитированием