Подтвердить что ты не робот

Сравнить 2 изображений в php

Сравнивая 2 изображения, чтобы увидеть, являются ли они обоими одинаковыми файлами, вы выбрали файлы MD5, но возможно ли или даже правдоподобно определить, являются ли 2 изображения одинаковыми с помощью PHP GD, чтобы получить разницу между обоими изображениями. Если мы найдем разницу между ними, и все было белым (id белым или даже черным), тогда мы теперь узнаем его и то же фото?

Также обратите внимание: id хотел бы знать, возможно ли получить 2 изображения равного размера для создания эффекта лукового скина, 50% прозрачности на 1 и 50% с другой.

4b9b3361

Ответ 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.

Ответ 7

Если вы сравниваете только два файла, тогда хеширование данных, а затем сравнение - идеальное решение. Если вы сравниваете большое количество файлов, лучше отсортируйте их сначала на основе размера, а затем сравните только с тем же размером.

Ответ 8

Мне пришлось дедуплицировать набор изображений JPEG, где разница между двумя идентичными изображениями для пикселя для пикселя была:

  • различные метаданные, например. изображения имели разные IFD0: ModifyDate
  • различные двоичные данные, например. изображения были без потерь сжаты с помощью другого программного обеспечения.

Решение, которое я использовал, было следующим:

  • откройте изображение, используя createimagefromjpeg function
  • сохранить изображение в формате GD2 с помощью imagegd2
  • сравнить версии GD2 с использованием сравнения хешей или сравнения строк