Maison > Questions et réponses > le corps du texte
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粉8608979432024-01-30 00:12:15
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 < 21) { $results[] = $image; echo ""; } } $flag = 1; } }