
Iteracja po pikselach
Listing
window.onload = function() {
var cv = document.getElementById("canvas");
var ctx = cv.getContext("2d");
//położenie obrazka na canvas
var imageX = 10;
var imageY = 10;
//pobranie obrazka
var img = document.getElementById("aniolek");
//wymiary obrazka
var imageW = img.width;
var imageH = img.height;
//odrysowanie obrazka
ctx.drawImage(img, imageX, imageY);
//pobranie danych obrazka
var imageData = ctx.getImageData(imageX, imageY, imageW, imageH);
var data = imageData.data;
//pobranie danych wskazanego piksela
//koordynaty x i y są koordynatami w obrębie obrazka i jego pobranych
//danych, a nie względem kontekstu.
// iteracja po pikselach
for(var y = 0; y < imageH; y++) {
// loop through each column
for(var x = 0; x < imageW; x++) {
var red = data[((imageW * y) + x) * 4];
var green = data[((imageW * y) + x) * 4 + 1];
var blue = data[((imageW * y) + x) * 4 + 2];
var alpha = data[((imageW * y) + x) * 4 + 3];
if ((x == 99)&&(y==99)) {
//wyświetlanie danych piksela
ctx.fillText("Dane piksela (100, 100): ", 340, 20);
ctx.fillText("red: " + red, 340, 40);
ctx.fillText("green: " + green, 340, 60);
ctx.fillText("blue: " + blue, 340, 80);
ctx.fillText("alpha: " + alpha, 340, 100);
}
}
}
};

