同じ画像を削除する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']));
}
}

工作と小物のがらくた部屋
それ、僕が図解します。