Spaces:
Running
Running
Download BeadQR/miniprogram/utils/qrcore/bit-matrix.js from Ethscriptions/cut: direct link, hf CLI and curl.
- Browser
- Download file 1.5 kB
-
https://huggingface.co/spaces/Ethscriptions/cut/resolve/main/BeadQR/miniprogram/utils/qrcore/bit-matrix.js
- Command line
-
hf download hf://spaces/Ethscriptions/cut/BeadQR/miniprogram/utils/qrcore/bit-matrix.js
-
curl -L -o bit-matrix.js https://huggingface.co/spaces/Ethscriptions/cut/resolve/main/BeadQR/miniprogram/utils/qrcore/bit-matrix.js
1.5 kB
| /** | |
| * Helper class to handle QR Code symbol modules | |
| * | |
| * @param {Number} size Symbol size | |
| */ | |
| function BitMatrix (size) { | |
| if (!size || size < 1) { | |
| throw new Error('BitMatrix size must be defined and greater than 0') | |
| } | |
| this.size = size | |
| this.data = new Uint8Array(size * size) | |
| this.reservedBit = new Uint8Array(size * size) | |
| } | |
| /** | |
| * Set bit value at specified location | |
| * If reserved flag is set, this bit will be ignored during masking process | |
| * | |
| * @param {Number} row | |
| * @param {Number} col | |
| * @param {Boolean} value | |
| * @param {Boolean} reserved | |
| */ | |
| BitMatrix.prototype.set = function (row, col, value, reserved) { | |
| const index = row * this.size + col | |
| this.data[index] = value | |
| if (reserved) this.reservedBit[index] = true | |
| } | |
| /** | |
| * Returns bit value at specified location | |
| * | |
| * @param {Number} row | |
| * @param {Number} col | |
| * @return {Boolean} | |
| */ | |
| BitMatrix.prototype.get = function (row, col) { | |
| return this.data[row * this.size + col] | |
| } | |
| /** | |
| * Applies xor operator at specified location | |
| * (used during masking process) | |
| * | |
| * @param {Number} row | |
| * @param {Number} col | |
| * @param {Boolean} value | |
| */ | |
| BitMatrix.prototype.xor = function (row, col, value) { | |
| this.data[row * this.size + col] ^= value | |
| } | |
| /** | |
| * Check if bit at specified location is reserved | |
| * | |
| * @param {Number} row | |
| * @param {Number} col | |
| * @return {Boolean} | |
| */ | |
| BitMatrix.prototype.isReserved = function (row, col) { | |
| return this.reservedBit[row * this.size + col] | |
| } | |
| module.exports = BitMatrix | |