Con la librería Libpuzzle de PHP podemos comparar dos imágenes (GIF, PNG, JPG) y comprobar si son similares o no.
Esta librería es gratis, de fácil configuración, ligera y de fácil uso.
Aquí un ejemplo de como comprobaríamos si dos imágenes son similares, y cómo luego las comprimimos para ser almacenadas en base de datos.
# Compute signatures for two images $cvec1 = puzzle_fill_cvec_from_file('img1.jpg'); $cvec2 = puzzle_fill_cvec_from_file('img2.jpg'); # Compute the distance between both signatures $d = puzzle_vector_normalized_distance($cvec1, $cvec2); # Are pictures similar? if ($d < PUZZLE_CVEC_SIMILARITY_LOWER_THRESHOLD) { echo "Pictures are looking similarn"; } else { echo "Pictures are different, distance=$dn"; } # Compress the signatures for database storage $compress_cvec1 = puzzle_compress_cvec($cvec1); $compress_cvec2 = puzzle_compress_cvec($cvec2);