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