Если вы используете Firefox (и я думаю, что Opera и, возможно, Safari; я не могу проверить прямо сейчас), вы можете нарисовать изображение на элементе canvas и использовать getImageData.
Это будет работать примерно так:
var img = document.getElementById("img_id");
var canvas = document.getElementById("canvas_id");
var context = canvas.getContext("2d");
var imageData = context.getImageData(0, 0, context.width, context.height);
// Now imageData is an object with width, height, and data properties.
// imageData.data is an array of pixel values (4 values per pixel in RGBA order)
// Change the top left pixel to red
imageData.data[0] = 255; // red
imageData.data[1] = 0; // green
imageData.data[2] = 0; // blue
imageData.data[3] = 255; // alpha
// Update the canvas
context.putPixelData(imageData, 0, 0);
Как только вы получите данные изображения, вы можете рассчитать начальный индекс для каждого пикселя:
var index = (y * imageData.width + x) * 4;
и добавьте смещение для каждого канала (0 для красного, 1 для зеленого, 2 для синего, 3 для альфа) * 1009 *