UNPKG

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
"use strict"; 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