handwritten-mathematics-recogniser
Version:
Easy and abstracted way to recognise handwritten mathematics in a browser or in a web view.
39 lines (37 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class Converter {
static convertImageToCanvas(image) {
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
canvas.width = image[0].length;
canvas.height = image.length;
const array = image.reduce((arr, row) => [].concat(arr, row.reduce((concatedRow, alpha) => [].concat(concatedRow, [0, 0, 0, (1 - alpha) * 255]), [])), []);
const clampedArray = new Uint8ClampedArray(array);
const imageData = new ImageData(clampedArray, canvas.width, canvas.height);
context.putImageData(imageData, 0, 0);
return canvas;
}
static convertCanvasToImage(canvas) {
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const image = [];
for (let y = 0; y < imageData.height; y++) {
image[y] = [];
for (let x = 0; x < imageData.width; x++) {
const offset = y * 4 * imageData.width + 4 * x;
const alpha = imageData.data[offset + 3];
if (alpha === 0) {
imageData.data[offset] = 255;
imageData.data[offset + 1] = 255;
imageData.data[offset + 2] = 255;
}
imageData.data[offset + 3] = 255;
image[y][x] = imageData.data[y * 4 * imageData.width + x * 4 + 0] / 255;
}
}
return image;
}
}
exports.Converter = Converter;
//# sourceMappingURL=converter.js.map