| 1435 | } |
| 1436 | |
| 1437 | function getCellColorFirstPoint(frameDetails: { cols: number, rows: number, decoded: IImage32 }, col: number, row: number): [red: number, green: number, blue: number, alpha: number] { |
| 1438 | const cellSize = { |
| 1439 | width: frameDetails.decoded.width / frameDetails.cols, |
| 1440 | height: frameDetails.decoded.height / frameDetails.rows |
| 1441 | }; |
| 1442 | const x = Math.floor((col - 1/* 1- to 0-based index */) * cellSize.width); |
| 1443 | const y = Math.floor((row - 1/* 1- to 0-based index */) * cellSize.height); |
| 1444 | const i = (y * frameDetails.decoded.width + x) * 4/* 4 channels per pixel */; |
| 1445 | return Array.from(frameDetails.decoded.data.slice(i, i + 4)) as [number, number, number, number]; |
| 1446 | } |
| 1447 | |
| 1448 | const COLORS_16_TO_255 = [ |
| 1449 | '#000000', '#00005f', '#000087', '#0000af', '#0000d7', '#0000ff', '#005f00', '#005f5f', '#005f87', '#005faf', '#005fd7', '#005fff', '#008700', '#00875f', '#008787', '#0087af', |