2015-01-02 1 views
0

У меня есть два разных URL-адреса, я хочу проверить, одинаковы или отличаются изображения с этим URL-адресом в java-скрипте. Я проверяю точное . . эти два URL вКак сравнить два разных изображения в java-скрипте

Изображения Путь

url1="https://usercontent.googleapis.com/freebase/v1/image/m/030z4z" 
url2="https://usercontent.googleapis.com/freebase/v1/image/m/09jjsg" 
+2

Привет, проверить это: http://huddle.github.io/Resemble.js/ – tomloprod

+0

вы хотите сравнить имя изображения ИЛИ изображение размер ?? – prog1011

+0

Или точные пиксели? –

ответ

5

Вы можете конвертировать изображения в base64 строку, а затем сравнивать строки.

Попробуйте что-то вроде этого:

/** 
* Convert an image 
* to a base64 string 
* @param {String} url   
* @param {Function} callback  
* @param {String} [outputFormat=image/png]   
*/ 
function convertImgToBase64(url, callback, outputFormat){ 
    var canvas = document.createElement('CANVAS'), 
     ctx = canvas.getContext('2d'), 
     img = new Image; 
    img.crossOrigin = 'Anonymous'; 
    img.onload = function(){ 
     var dataURL; 
     canvas.height = img.height; 
     canvas.width = img.width; 
     ctx.drawImage(img, 0, 0); 
     dataURL = canvas.toDataURL(outputFormat); 
     callback.call(this, dataURL); 
     canvas = null; 
    }; 
    img.src = url; 
} 

var img1 = "http://image_url_1", 
    img2 = "http://image_url_2" 

convertImgToBase64(img1, function(base64Img1){ 
    convertImgToBase64(img2, function(base64Img2){ 
     alert(base64Img1 == base64Img2); 
    }); 
}); 
+0

Это хороший метод, если вы хотите сравнить, если два изображения точны. –

1

Во-первых, сравните размеры изображений с помощью

var img=document.getElementById("myImage"); //Which is an image element on DOM 

img.naturalWidth и img.naturalHeight для обоих изображений.

Если размеры изображений точно совпадают, добавьте две холсты в DOM того же размера, что и изображение, и нарисуйте соответствующие изображения;

var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 

ctx.drawImage(img,0,0); 

Затем сравните пиксель за пикселем, используя аналогичный метод this

Смежные вопросы