Files
Docker-404-games/404_games/snake/js/utils.js
2024-01-13 18:20:27 +01:00

48 lines
1.3 KiB
JavaScript

var loadImagePixels = function(image, callback){
var img = new Image();
img.src = image;
img.onload = function() {
console.log("Image " + image + " loaded " + img.width + "x" +img.height);
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
var ctx = canvas.getContext('2d');
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
img.style.display = 'none';
var imgData = ctx.getImageData(0,0,canvas.width, canvas.height);
var pixels = [];
for(i=0;i<img.width;i++){
pixels[i] = [];
for(j=0;j<img.height;j++){
var pixel = ctx.getImageData(i, j, 1, 1).data;
pixels[i][j] = {r: pixel[0], g: pixel[1], b: pixel[2], a: pixel[3]};
}
}
canvas.remove();
callback(pixels);
};
}
var BLACK = {r: 0, g: 0, b: 0};
var WHITE = {r: 255, g: 255, b: 255};
var YELLOW = {r: 255, g: 255, b: 0};
var GREEN = {r: 0, g: 255, b: 0};
var ORANGE = {r: 255, g: 127, b: 0};
var CYAN = {r: 0, g: 255, b: 255};
var RED = {r: 255, g: 0, b: 0};
var PINK = {r: 255, g: 0, b: 255};
var pixelIsColor = function(pixels, x, y, color){
try{
return isColor(pixels[x][y], color);
} catch (e){return false; }
}
var isColor = function(rgb, color) {
return rgb.r == color.r && rgb.g == color.g && rgb.b == color.b;
}