2016-06-18 101 views
1

img_1은 PHP에 의해 생성되고 img_2는 서버에 저장됩니다. 나는 그것들을 다른 것들과 비교하기 위해 그것들을 이미지와 비교하려고 노력하고있다. 나는 이것을 시도했지만 효과가 없다.PHP 이미지 비교

$script_img = imagecreatetruecolor(2390, 2400); 
$web_img = imagecreatefrompng("URL_TO_IMG"); 

if ($script_img==$web_img) { 
    echo "SAME"; 
} 
else{ 
    echo "DIFFERENT"; 
} 

다음 예제는 작동하지만 내가 imagepng를 호출 할 때 (헤더 이미지/PNG로 설정되지 않은 경우) 내가 원하지 않는다 PHP는 브라우저 나 이상한 문자로 이미지를 만듭니다.

$script_img = imagecreatetruecolor(2390, 2400); 
$web_img = imagecreatefrompng("URL_TO_IMG"); 
$rendered = imagepng($web_img); 

if ($script_img==$rendered) { 
    echo "SAME"; 
} 
else{ 
    echo "DIFFERENT"; 
} 

나는 또한 file_get_contents($script_img) == file_get_contents("URL_TO_IMG")을 시도했지만 작동하지 않습니다.

md5(file_get_contents(imagecreatetruecolor(2390, 2400))) == md5(file_get_contents(imagecreatefrompng("URL_TO_IMG")))을 사용하면 효과가 있지만 이것이 2 이미지를 비교하는 가장 좋은 방법이라고 생각합니다.


PHP에서 이미지를 비교하는 가장 좋은 방법은 무엇입니까?

+2

http://stackoverflow.com/questions/3270929/compare-2-images-in-php – Mohammad

+0

난 이미 그 답을 세례반하지만 난 당신이 필요 – ihh66042

+1

첫 번째 이미지를 비교하는 올바른 방법이 무엇인지 관심이 있어요 매우 구체적으로 두 이미지가 "동등"하다는 것을 생각하는 것을 정의합니다. 이것은 매우 일반적으로 논의되는 문제이며, 귀하의 질문을 귀하의 연구에 포함 시키십시오. – CodeCaster

답변

0

왜 두 이미지의 MD5 해시를 비교해보십시오.

$md5LocalImg = md5(file_get_contents($script_img)); 
    $md5WebImg = md5(file_get_contents($web_img)); 
    if ($md5LocalImg == $md5WebImg){ 
    echo("SAME"); 
    } 
    else{ 
    echo("DIFFERENT"); 
    } 
+0

이것은 작동하지만 이것이 이미지를 비교하는 올바른 방법이라고는 생각하지 않습니다. – ihh66042

+0

귀하의 요구 사항에 따라 다릅니다. 이미지 처리를 계속하려면 일부 이미지 처리 라이브러리를 사용할 수 있습니다. 그렇지 않으면 MD5 해시가 작업을 수행합니다. – ErAcube