Afficher des images similaires dans le répertoire après comparaison avec l'entrée d'image en php
P粉245003607
P粉245003607 2024-01-29 14:38:39
0
1
560

Dans ma page Web, l'utilisateur téléchargera une image, puis, une fois soumise, elle devra être comparée à toutes les images du répertoire et des images similaires doivent être générées. J'ai fait cela avec md5 mais il ne génère que l'image exacte, je connais la raison mais je ne sais pas comment boucler toutes les images de mon répertoire avec l'image d'entrée en utilisant la comparaison RVB... Quelqu'un peut-il m'aider ? Voici mon code actuel :

<?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."'/>";
            }

        }


    
}
}
?>

Et mon code html

<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粉245003607
P粉245003607

répondre à tous(1)
P粉860897943

J'ai utilisé la classe mentionnée dans ce référentiel git pour calculer les hachages d'images et leurs différences.

https://github.com/nvthaovn/CompareImage

et j'ai changé mon code en :

<?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 ";
            }
        }
        
        $flag = 1;
    }
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal