it-swarm.com.ru

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

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

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

25
Joseph

ImageMagick предлагает различные инструменты, которые вы можете использовать для этого, через расширение PHP ImageMagick.

http://www.php.net/manual/en/function.imagick-compareimages.php

Самая большая проблема заключается в том, что документации для этой библиотеки практически не существует, поэтому будет много проб и ошибок.

17
kander
$md5image1 = md5(file_get_contents($image1));
$md5image2 = md5(file_get_contents($image2));
if ($md5image1 == $md5image2) {

}
13
Hamada Mido

libpuzzle это расширение PHP, которое может сравнивать изображения.

9
pfrenssen

Аналогичный вопрос был задан в этом поток Stackoverflow, и я разработал что-то для своего собственного использования. Размещение здесь, чтобы оно могло помочь другим.

Он берет два (или более изображения) и дает вам возможность проверить разницу между ними. Параметры, такие как разрешение, чтобы использовать, и строгость.

Я написал более исчерпывающий пост на блоге также.

3
Pat Cullen

Функция сравнения изображений в PHP с Gd Library http://www.robert-lerner.com/imagecompare.php

3
TechNikh

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

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

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

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

Не уверен, что это так просто, и решение выходит, но, вероятно, вы можете получить представление об обнаружении изображения из:

Распознавание лиц с помощью PHP
Фильтр обнаженности изображения (Класс)

0
Sarfraz

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

0
mrd081