Сравнение двух изображений, чтобы проверить, являются ли они обоими одинаковыми файлами, легко распаковывает файлы MD5, но возможно ли или даже правдоподобно определить, являются ли 2 изображения одинаковыми, используя PHP GD, чтобы получить разницу между обоими изображениями. Если мы найдем разницу между ними, и все было белым (id белым или даже черным), тогда мы теперь узнаем его и ту же фотографию?
Также обратите внимание: id хотел бы узнать, возможно ли получить 2 изображения одинакового размера, чтобы создать эффект луковой кожи, 50% прозрачности на 1 и 50% с другой.
ImageMagick предлагает различные инструменты, которые вы можете использовать для этого, через расширение PHP ImageMagick.
http://www.php.net/manual/en/function.imagick-compareimages.php
Самая большая проблема заключается в том, что документация для этой библиотеки практически не существует, поэтому будет много проб и ошибок.
$md5image1 = md5(file_get_contents($image1)); $md5image2 = md5(file_get_contents($image2)); if ($md5image1 == $md5image2) { }
libpuzzle – это расширение PHP, которое может сравнивать изображения.
Аналогичный вопрос был задан в этом потоке Stackoverflow, и я разработал что-то для собственного использования. Отправьте его сюда, чтобы он мог помочь другим.
Он принимает два (или более изображений) и дает вам варианты проверки разницы между ними. Варианты, такие как разрешение на использование и строгость.
Я также написал более подробный блог-план .
Функция сравнения изображений в PHP с библиотекой GD http://www.robert-lerner.com/imagecompare.php
Не уверен, что это так просто и решение выходит, но, вероятно, вы можете получить представление об обнаружении изображений:
Распознавание лиц с помощью PHP
Фильтр изображения изображения (класс)
Если вы сравниваете только два файла, тогда хеширование данных, а затем сравнение – идеальное решение. Если вы сравниваете большое количество файлов, лучше отсортируйте их сначала по размеру, а затем сравните только с тем же размером.
Мне пришлось дедуплицировать набор изображений JPEG, где разница между двумя пиксельными пиксельными идентичными изображениями была:
Решение, которое я использовал, было следующим:
createimagefromjpeg
imagegd2