Rumah  >  Soal Jawab  >  teks badan

Keluarkan imej yang serupa dalam direktori selepas membandingkan dengan input imej dalam php

Dalam halaman web saya, pengguna akan memuat naik imej dan kemudian selepas penyerahan ia harus dibandingkan dengan semua imej dalam direktori dan imej yang serupa harus dikeluarkan. Saya melakukan ini dengan md5 tetapi ia hanya mengeluarkan imej yang tepat, saya tahu sebabnya tetapi saya tidak tahu bagaimana untuk menggelungkan semua imej dalam direktori saya dengan imej input menggunakan perbandingan RGB... Bolehkah sesiapa membantu saya? Ini kod semasa saya:

<?php 
    if(isset($_POST['submit'])){

    $filepath=pathinfo($_FILES['file']['name']) ;
    $extension=$filepath['extension'];
    
    $iname= date('H-i-s').'.'.$extension;
    $path='upload/'.$iname;
    if(move_uploaded_file($_FILES['file']['tmp_name'],$path)){
        $img=$path;
        echo $img;
        $f=md5(file_get_contents($img));
        $images=glob("img/*");
        foreach($images as $image){
            if($f==md5(file_get_contents($image))){
                echo  "<img height='70px' width='70px' src='".$image."'/>";
            }

        }


    
}
}
?>

Dan kod html saya

<html>
     <body> 
       <form method=post enctype="multipart/form-data">
          <input type=file name=file><br><input type=submit name=submit value=submit>
       </form>
    </body>
   </html>

P粉245003607P粉245003607238 hari yang lalu466

membalas semua(1)saya akan balas

  • P粉860897943

    P粉8608979432024-01-30 00:12:15

    Saya menggunakan kelas yang disebutkan dalam repositori git ini untuk mengira cincang imej dan perbezaannya.

    https://github.com/nvthaovn/CompareImage

    dan menukar kod saya kepada:

    <?php 
    include('compareImages.php');
    $flag = 0;
    
    if(isset($_POST['submit'])) {
    
        $filepath = pathinfo($_FILES['file']['name']);
        $extension = $filepath['extension'];
        
        $iname = date('H-i-s').'.'.$extension;
        $path = 'upload/'.$iname;
    
        if(move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
            
            $compareMachine = new compareImages($path);
            $images = glob("img/*");
    
            foreach($images as $image)
            {
                $diff = $compareMachine->compareWith($image);
                
                if($diff < 21) {
                    $results[] = $image;
                    echo  "";
                }
            }
            
            $flag = 1;
        }
    }

    balas
    0
  • Batalbalas