onajigazo.png

同じ画像を削除するPHPのプログラムです。
ビューワーとかにも付いている機能ですし、
サイズ違ったり再保存されてるとNGですが、
何かの参考になれば^w^

img2に入っている画像をimg3へユニークな状態でコピーします。

重かったんでやめましたが、類似検索もつくとよいな。

<?php

$files = glob('img2/*.jpg');
$data = array();

foreach($files as $file){
    $imginfo = getimagesize($file);
    $data[] = array(
        'file'=>$file,
        'size'=>filesize($file),
        'w'=>$imginfo[0],
        'h'=>$imginfo[1],
        'del'=>0
    );
}

usort($data, 'MySort');
function MySort($a, $b){
    if($a['size'] > $b['size']){
        return -1;
    }else{
        return 1;
    }    
}


for($i=0;$i<count($data);$i++){
    $fs1 = $data[$i]['size'];
    if($data[$i]['del'] == 1){ continue; }
    if($data[$i]['w'] <= 150 && $data[$i]['h'] <= 150){
        $data[$i]['del'] = 1;
        continue;
    }
    $img1 = file_get_contents($data[$i]['file']);
    echo $i;
    echo '/';
    for($n=$i+1;$n<count($data);$n++){
        if($data[$n]['del'] == 1){ continue; }
        $fs2 = $data[$n]['size'];
        if(abs($fs1-$fs2) <= 1000){
            echo $n;
            echo " ";
            $img2 = file_get_contents($data[$n]['file']);
            if($img1==$img2){
                $data[$n]['del'] = 1;
            }
        }

    }
    echo "\n";
}
foreach($data as $item){
    if($item['del'] == 0){
        copy($item['file'],str_replace('img2', 'img4', $item['file']));
    }
}