Сначала вы рисуете изображение в элементе canvas с помощью drawImage (), а затем получаете данные пикселей из холста.
var canvas = $("#yourCanvas");
var context = canvas.get(0).getContext("2d");
var image = new Image();
image.src = "imagename.jpg";
var imageData;
var pixels;
$(image).load(function() {
context.drawImage(image, 0, 0);
imageData = context.getImageData(0, 0, image.width, image.height);
pixels = imageData.data; // pixel data array of width*height*4 elements
// (r,g,b,alpha for every pixel)
});
context.clearRect(0, 0, canvas.width(), canvas.height());
Теперь вы можете перейти в массив пикселей, чтобы проверить значение цветаделая что-то вроде этого.
var pos = 0; // index position into pixels array
for (y = 0; y < image.height; y++) {
for (x = 0; x < image.width; x++) {
var red = pixels[pos++];
var green = pixels[pos++];
var blue = pixels[pos++];
var alpha = pixels[pos++];
/* if is not black (red!=0, green!=0 and blue!=0) nor white (red!=255,
green!=255, blue!=255) it's the line are you looking for
so use context.lineTo(x,y); and start drawing the first point.. and so on */
}
}
Имейте в виду, что я считаю идеальным 0,0,0 черного и идеального 255,255,255 белого.может быть, вам следует реализовать некоторое шумоподавление для работы с реальными приложениями.