je me trouve devant ce problème: je fais une recherche d'images sur un site. (java + regex), une fois que j'ai trouvé des images, je les enregistre sur mon disque dur (c:/ windows xp sp2). puis j'applique un algorithme MD5 ou SHA sur le contenu de cette image.
pour verifier ma manip, je vais chercher cette meme image à la main (avec firefox) => clic droit enregistrer sous ...
puis j'applique les memes algos.
et quand je compare mes signatures deux à deux, ce ne sont pas les memes
j'enregistre mon image comme ça:
public boolean RecupImage(String path, String nom) {
try {
URL adresse = new URL(path);
URLConnection con = adresse.openConnection();
BufferedImage im =ImageIO.read(con.getInputStream());
String[] extension=ImageIO.getReaderFormatNames();
OutputStream img = new FileOutputStream(nom);
ImageIO.write(im, extension[1], img);
img.close();
return true;
}
catch (Exception e) {
System.out.println("Impossible de dl l'image");
return false;
}
}
et je ne comprend pas pourquoi l'empreinte des mes deux images (provenant de la meme source), ne sont pas les memes.
Sachant que les deux dernieres portions de code sont appliquées à l'identique sur les deux images, je pense que le probleme vient de ma methode d'enregistrement d'image sur le disque, mais sans en etre totalement certain.
merci pour les solutions que vous pourrez m'aporter.
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.