@sythos/js_barcode_universal 1.5.7 → 1.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +1 -1
- package/README.md +44 -35
- package/bundle/sythos-barcode.esm.js +618 -465
- package/bundle/sythos-barcode.js +618 -465
- package/package.json +43 -43
- package/src/index.d.ts +363 -0
- package/src/index.js +286 -133
- package/src/{aztec → js/aztec}/decoder.js +0 -1
- package/src/{aztec → js/aztec}/detector.js +0 -1
- package/src/{aztec → js/aztec}/encoder.js +0 -1
- package/src/{aztec → js/aztec}/high-level.js +0 -1
- package/src/{aztec → js/aztec}/index.js +0 -1
- package/src/{aztec → js/aztec}/tables.js +0 -1
- package/src/{aztecrune → js/aztecrune}/decoder.js +0 -1
- package/src/{aztecrune → js/aztecrune}/detector.js +0 -1
- package/src/{aztecrune → js/aztecrune}/encoder.js +0 -1
- package/src/{aztecrune → js/aztecrune}/index.js +0 -1
- package/src/{aztecrune → js/aztecrune}/tables.js +0 -1
- package/src/{compactpdf417 → js/compactpdf417}/decoder.js +0 -1
- package/src/{compactpdf417 → js/compactpdf417}/detector.js +0 -1
- package/src/{compactpdf417 → js/compactpdf417}/encoder.js +0 -1
- package/src/{compactpdf417 → js/compactpdf417}/index.js +0 -5
- package/src/{compactpdf417 → js/compactpdf417}/tables.js +0 -1
- package/src/{core → js/core}/bit-buffer.js +0 -1
- package/src/{core → js/core}/bit-matrix.js +0 -1
- package/src/{core → js/core}/errors.js +0 -1
- package/src/{core → js/core}/galois-field.js +0 -1
- package/src/{core → js/core}/index.js +0 -1
- package/src/{core → js/core}/reed-solomon.js +0 -1
- package/src/{databar → js/databar}/codec.js +0 -1
- package/src/{databar → js/databar}/decoder.js +0 -1
- package/src/{databar → js/databar}/encoder.js +0 -1
- package/src/{databar → js/databar}/gs1.js +0 -1
- package/src/{databar → js/databar}/index.js +0 -1
- package/src/{databar → js/databar}/patterns.js +0 -1
- package/src/{databar → js/databar}/tables.js +0 -1
- package/src/{datamatrix → js/datamatrix}/decoder.js +0 -1
- package/src/{datamatrix → js/datamatrix}/detector.js +0 -1
- package/src/{datamatrix → js/datamatrix}/encoder.js +0 -1
- package/src/{datamatrix → js/datamatrix}/index.js +0 -1
- package/src/{datamatrix → js/datamatrix}/tables.js +0 -1
- package/src/{frameqr → js/frameqr}/decoder.js +15 -16
- package/src/{frameqr → js/frameqr}/detector.js +2 -3
- package/src/{frameqr → js/frameqr}/encoder.js +7 -8
- package/src/{frameqr → js/frameqr}/index.js +0 -1
- package/src/{frameqr → js/frameqr}/tables.js +10 -11
- package/src/{image → js/image}/binarizer.js +0 -1
- package/src/{image → js/image}/grid-sampler.js +0 -1
- package/src/{image → js/image}/index.js +0 -1
- package/src/{image → js/image}/luminance.js +0 -1
- package/src/{image → js/image}/perspective.js +0 -1
- package/src/{micropdf417 → js/micropdf417}/compaction.js +0 -1
- package/src/{micropdf417 → js/micropdf417}/decoder.js +0 -1
- package/src/{micropdf417 → js/micropdf417}/detector.js +0 -1
- package/src/{micropdf417 → js/micropdf417}/encoder.js +0 -1
- package/src/{micropdf417 → js/micropdf417}/error-correction.js +0 -1
- package/src/{micropdf417 → js/micropdf417}/index.js +0 -1
- package/src/{micropdf417 → js/micropdf417}/tables.js +0 -1
- package/src/{microqr → js/microqr}/decoder.js +0 -1
- package/src/{microqr → js/microqr}/detector.js +0 -1
- package/src/{microqr → js/microqr}/encoder.js +0 -1
- package/src/{microqr → js/microqr}/index.js +0 -1
- package/src/{microqr → js/microqr}/tables.js +0 -1
- package/src/{oned → js/oned}/addons.js +0 -1
- package/src/{oned → js/oned}/index.js +0 -1
- package/src/{oned → js/oned}/patterns.js +0 -1
- package/src/{oned → js/oned}/reader.js +0 -1
- package/src/{oned → js/oned}/writers.js +0 -1
- package/src/{pdf417 → js/pdf417}/compaction.js +0 -1
- package/src/{pdf417 → js/pdf417}/decoder.js +0 -1
- package/src/{pdf417 → js/pdf417}/detector.js +0 -1
- package/src/{pdf417 → js/pdf417}/encoder.js +0 -1
- package/src/{pdf417 → js/pdf417}/error-correction.js +0 -1
- package/src/{pdf417 → js/pdf417}/index.js +0 -5
- package/src/{pdf417 → js/pdf417}/tables.js +0 -1
- package/src/{qr → js/qr}/decoder.js +0 -1
- package/src/{qr → js/qr}/detector.js +0 -1
- package/src/{qr → js/qr}/encoder.js +0 -1
- package/src/{qr → js/qr}/index.js +0 -1
- package/src/{qr → js/qr}/tables.js +0 -1
- package/src/{render → js/render}/image-data.js +0 -1
- package/src/{render → js/render}/index.js +0 -1
- package/src/{render → js/render}/options.js +0 -1
- package/src/{render → js/render}/png.js +0 -1
- package/src/{render → js/render}/svg.js +0 -1
- package/src/{render → js/render}/webgl.js +0 -1
- package/src/{render → js/render}/webgpu.js +0 -1
- package/src/{rmqr → js/rmqr}/decoder.js +0 -1
- package/src/{rmqr → js/rmqr}/detector.js +0 -1
- package/src/{rmqr → js/rmqr}/encoder.js +0 -1
- package/src/{rmqr → js/rmqr}/index.js +0 -1
- package/src/{rmqr → js/rmqr}/tables.js +0 -1
- package/{typings → src/ts}/aztec/detector.d.ts +2 -2
- package/{typings → src/ts}/datamatrix/detector.d.ts +2 -2
- package/{typings → src/ts}/index.d.ts +3 -3
- /package/{typings → src/ts}/aztec/decoder.d.ts +0 -0
- /package/{typings → src/ts}/aztec/encoder.d.ts +0 -0
- /package/{typings → src/ts}/aztec/high-level.d.ts +0 -0
- /package/{typings → src/ts}/aztec/index.d.ts +0 -0
- /package/{typings → src/ts}/aztec/tables.d.ts +0 -0
- /package/{typings → src/ts}/aztecrune/decoder.d.ts +0 -0
- /package/{typings → src/ts}/aztecrune/detector.d.ts +0 -0
- /package/{typings → src/ts}/aztecrune/encoder.d.ts +0 -0
- /package/{typings → src/ts}/aztecrune/index.d.ts +0 -0
- /package/{typings → src/ts}/aztecrune/tables.d.ts +0 -0
- /package/{typings → src/ts}/bundle/sythos-barcode.d.ts +0 -0
- /package/{typings → src/ts}/bundle/sythos-barcode.esm.d.ts +0 -0
- /package/{typings → src/ts}/compactpdf417/decoder.d.ts +0 -0
- /package/{typings → src/ts}/compactpdf417/detector.d.ts +0 -0
- /package/{typings → src/ts}/compactpdf417/encoder.d.ts +0 -0
- /package/{typings → src/ts}/compactpdf417/index.d.ts +0 -0
- /package/{typings → src/ts}/compactpdf417/tables.d.ts +0 -0
- /package/{typings → src/ts}/core/bit-buffer.d.ts +0 -0
- /package/{typings → src/ts}/core/bit-matrix.d.ts +0 -0
- /package/{typings → src/ts}/core/errors.d.ts +0 -0
- /package/{typings → src/ts}/core/galois-field.d.ts +0 -0
- /package/{typings → src/ts}/core/index.d.ts +0 -0
- /package/{typings → src/ts}/core/reed-solomon.d.ts +0 -0
- /package/{typings → src/ts}/databar/codec.d.ts +0 -0
- /package/{typings → src/ts}/databar/decoder.d.ts +0 -0
- /package/{typings → src/ts}/databar/encoder.d.ts +0 -0
- /package/{typings → src/ts}/databar/gs1.d.ts +0 -0
- /package/{typings → src/ts}/databar/index.d.ts +0 -0
- /package/{typings → src/ts}/databar/patterns.d.ts +0 -0
- /package/{typings → src/ts}/databar/tables.d.ts +0 -0
- /package/{typings → src/ts}/datamatrix/decoder.d.ts +0 -0
- /package/{typings → src/ts}/datamatrix/encoder.d.ts +0 -0
- /package/{typings → src/ts}/datamatrix/index.d.ts +0 -0
- /package/{typings → src/ts}/datamatrix/tables.d.ts +0 -0
- /package/{typings → src/ts}/frameqr/decoder.d.ts +0 -0
- /package/{typings → src/ts}/frameqr/detector.d.ts +0 -0
- /package/{typings → src/ts}/frameqr/encoder.d.ts +0 -0
- /package/{typings → src/ts}/frameqr/index.d.ts +0 -0
- /package/{typings → src/ts}/frameqr/tables.d.ts +0 -0
- /package/{typings → src/ts}/image/binarizer.d.ts +0 -0
- /package/{typings → src/ts}/image/grid-sampler.d.ts +0 -0
- /package/{typings → src/ts}/image/index.d.ts +0 -0
- /package/{typings → src/ts}/image/luminance.d.ts +0 -0
- /package/{typings → src/ts}/image/perspective.d.ts +0 -0
- /package/{typings → src/ts}/micropdf417/compaction.d.ts +0 -0
- /package/{typings → src/ts}/micropdf417/decoder.d.ts +0 -0
- /package/{typings → src/ts}/micropdf417/detector.d.ts +0 -0
- /package/{typings → src/ts}/micropdf417/encoder.d.ts +0 -0
- /package/{typings → src/ts}/micropdf417/error-correction.d.ts +0 -0
- /package/{typings → src/ts}/micropdf417/index.d.ts +0 -0
- /package/{typings → src/ts}/micropdf417/tables.d.ts +0 -0
- /package/{typings → src/ts}/microqr/decoder.d.ts +0 -0
- /package/{typings → src/ts}/microqr/detector.d.ts +0 -0
- /package/{typings → src/ts}/microqr/encoder.d.ts +0 -0
- /package/{typings → src/ts}/microqr/index.d.ts +0 -0
- /package/{typings → src/ts}/microqr/tables.d.ts +0 -0
- /package/{typings → src/ts}/oned/addons.d.ts +0 -0
- /package/{typings → src/ts}/oned/index.d.ts +0 -0
- /package/{typings → src/ts}/oned/patterns.d.ts +0 -0
- /package/{typings → src/ts}/oned/reader.d.ts +0 -0
- /package/{typings → src/ts}/oned/writers.d.ts +0 -0
- /package/{typings → src/ts}/pdf417/compaction.d.ts +0 -0
- /package/{typings → src/ts}/pdf417/decoder.d.ts +0 -0
- /package/{typings → src/ts}/pdf417/detector.d.ts +0 -0
- /package/{typings → src/ts}/pdf417/encoder.d.ts +0 -0
- /package/{typings → src/ts}/pdf417/error-correction.d.ts +0 -0
- /package/{typings → src/ts}/pdf417/index.d.ts +0 -0
- /package/{typings → src/ts}/pdf417/tables.d.ts +0 -0
- /package/{typings → src/ts}/qr/decoder.d.ts +0 -0
- /package/{typings → src/ts}/qr/detector.d.ts +0 -0
- /package/{typings → src/ts}/qr/encoder.d.ts +0 -0
- /package/{typings → src/ts}/qr/index.d.ts +0 -0
- /package/{typings → src/ts}/qr/tables.d.ts +0 -0
- /package/{typings → src/ts}/render/image-data.d.ts +0 -0
- /package/{typings → src/ts}/render/index.d.ts +0 -0
- /package/{typings → src/ts}/render/options.d.ts +0 -0
- /package/{typings → src/ts}/render/png.d.ts +0 -0
- /package/{typings → src/ts}/render/svg.d.ts +0 -0
- /package/{typings → src/ts}/render/webgl.d.ts +0 -0
- /package/{typings → src/ts}/render/webgpu.d.ts +0 -0
- /package/{typings → src/ts}/rmqr/decoder.d.ts +0 -0
- /package/{typings → src/ts}/rmqr/detector.d.ts +0 -0
- /package/{typings → src/ts}/rmqr/encoder.d.ts +0 -0
- /package/{typings → src/ts}/rmqr/index.d.ts +0 -0
- /package/{typings → src/ts}/rmqr/tables.d.ts +0 -0
package/NOTICE.md
CHANGED
|
@@ -96,7 +96,7 @@ Records any constant table whose values were transcribed from a documented
|
|
|
96
96
|
source rather than generated by `tools/`. Each entry names the source and the
|
|
97
97
|
date of transcription.
|
|
98
98
|
|
|
99
|
-
| PDF417 pattern ordering | AIM USS-PDF417 public reference ([reference copy](https://www.expresscorp.com/uploads/specifications/44/USS-PDF-417.pdf)), Appendix H / Table H1, transcribed for `src/pdf417/tables.js`; accessed 2026-08-11. The reference copy is attributed here; its copyright and redistribution terms remain under legal review. |
|
|
99
|
+
| PDF417 pattern ordering | AIM USS-PDF417 public reference ([reference copy](https://www.expresscorp.com/uploads/specifications/44/USS-PDF-417.pdf)), Appendix H / Table H1, transcribed for `src/js/pdf417/tables.js`; accessed 2026-08-11. The reference copy is attributed here; its copyright and redistribution terms remain under legal review. |
|
|
100
100
|
| PDF417 black-box verification | ZXing Java 3.5.3 and bwip-js 4.5.1 were invoked as external black boxes on 2026-08-11 for bidirectional Text/Numeric/UTF-8 vectors. Their source and tables are not shipped. |
|
|
101
101
|
| PDF417 device evidence | User-provided 6/6 continuous-camera attestations on Pixel 10/Android 17/Chrome and iPhone 17/Safari, including printed Brother MFC-L2710DW symbols, low light/flash, blur and motion; recorded as user evidence, not independently captured by this repository. |
|
|
102
102
|
| MicroPDF417 technical and provenance review | [ISO/IEC 24728:2006](https://www.iso.org/standard/38838.html), [Wikipedia overview](https://en.wikipedia.org/wiki/MicroPDF417), [US 6,047,892 record](https://patents.google.com/patent/US6047892A/en) and its [direct PDF](https://patentimages.storage.googleapis.com/0a/79/f5/e8d374043414f3/US6047892.pdf) were consulted on 2026-08-11. ZXing-C++, Zint and bwip-js were consulted for implementation/review or black-box validation. No third-party source code is copied or shipped; normative/public values are represented in original Sythos data structures, with provenance and legal review pending. |
|
package/README.md
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
# Sythos Barcode Suite and SDK
|
|
2
2
|
|
|
3
|
-
Read and write barcodes in JavaScript.
|
|
3
|
+
Read and write barcodes in JavaScript and TypeScript.
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/@sythos/js_barcode_universal)
|
|
6
|
-
[](LICENSE)
|
|
7
|
-
[](package.json)
|
|
8
|
-
[](https://nodejs.org/api/esm.html)
|
|
9
|
-
[](https://www.npmjs.com/package/@sythos/js_barcode_universal)
|
|
5
|
+
[](https://www.npmjs.com/package/@sythos/js_barcode_universal) [](LICENSE) [](package.json) [](https://nodejs.org/api/esm.html) 
|
|
10
6
|
|
|
11
|
-
[](https://www.npmjs.com/package/@sythos/js_barcode_universal)
|
|
12
|
-
[](https://github.com/Sythos/JS_Barcode_Universal/commits/main/)
|
|
13
|
-
[](https://github.com/Sythos/JS_Barcode_Universal/issues)
|
|
7
|
+
[](https://www.npmjs.com/package/@sythos/js_barcode_universal) [](https://github.com/Sythos/JS_Barcode_Universal/commits/main/) [](https://github.com/Sythos/JS_Barcode_Universal/issues) [](https://www.npmjs.com/package/@sythos/js_barcode_universal)
|
|
14
8
|
|
|
15
9
|
Original Sythos implementation, zero runtime dependencies, MIT. It runs unmodified in Node, in browsers
|
|
16
10
|
(including Safari on iOS) and in web workers. The core requires no canvas, no filesystem and no
|
|
@@ -118,8 +112,8 @@ The `unpkg` and `jsdelivr` fields point at the IIFE bundle, so a CDN needs no in
|
|
|
118
112
|
|
|
119
113
|
```html
|
|
120
114
|
<script src="https://unpkg.com/@sythos/js_barcode_universal"></script>
|
|
121
|
-
<script src="https://unpkg.com/@sythos/js_barcode_universal@1.5.
|
|
122
|
-
<script src="https://cdn.jsdelivr.net/npm/@sythos/js_barcode_universal@1.5.
|
|
115
|
+
<script src="https://unpkg.com/@sythos/js_barcode_universal@1.5.8"></script>
|
|
116
|
+
<script src="https://cdn.jsdelivr.net/npm/@sythos/js_barcode_universal@1.5.8"></script>
|
|
123
117
|
```
|
|
124
118
|
|
|
125
119
|
Pin the version for anything you ship; the unpinned form resolves to `latest` and will move under
|
|
@@ -168,7 +162,17 @@ toPNG(ean, { scale: 3, barHeight: 80 }).then((bytes) => {
|
|
|
168
162
|
### 4. The source directly
|
|
169
163
|
|
|
170
164
|
[`src/index.js`](src/index.js) is plain ESM with JSDoc types and no build step of its own. Import
|
|
171
|
-
it and let your bundler tree-shake; the package is marked side-effect free.
|
|
165
|
+
it and let your bundler tree-shake; the package is marked side-effect free. The source layout is
|
|
166
|
+
deliberately explicit:
|
|
167
|
+
|
|
168
|
+
- `src/index.js` is the stable public facade.
|
|
169
|
+
- `src/index.d.ts` is the public TypeScript declaration facade for the top-level entry point.
|
|
170
|
+
- `src/js/` contains the zero-dependency JavaScript runtime modules, including format subpaths.
|
|
171
|
+
- `src/ts/` contains the shipped machine-readable TypeScript declaration modules for the format
|
|
172
|
+
subpaths. These declarations describe the JavaScript runtime and do not add a runtime dependency.
|
|
173
|
+
|
|
174
|
+
The package subpath exports therefore pair runtime modules under `src/js/` with their declaration
|
|
175
|
+
counterparts under `src/ts/`; direct source imports should continue to use the facade above.
|
|
172
176
|
|
|
173
177
|
```js
|
|
174
178
|
import { encode, decode, toImageData, listFormats } from './src/index.js';
|
|
@@ -205,11 +209,14 @@ decode(frame, { formats, profile: 'camera', tryHarder: true })
|
|
|
205
209
|
```
|
|
206
210
|
|
|
207
211
|
The profile requires a compatible quiet zone and the same complete 1D symbol on at least two
|
|
208
|
-
scan samples. It
|
|
209
|
-
native orientation has no validated read.
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
212
|
+
scan samples. It evaluates the eight fixed in-plane orientations `0°`, `45°`, `90°`, `135°`,
|
|
213
|
+
`180°`, `225°`, `270°` and `315°` when the native orientation has no validated read. The same
|
|
214
|
+
orientation set is available to the supported 2D detector passes in the strict camera profile.
|
|
215
|
+
Code 11 and MSI require a verified check digit in this profile; other formats retain their own
|
|
216
|
+
structural and checksum validation. A frame without a validated barcode still returns `[]`. No
|
|
217
|
+
partial, structurally inconsistent or low-confidence value is emitted to the caller. This is a
|
|
218
|
+
finite in-plane retry policy, not a guarantee for arbitrary perspective, curved media, severe
|
|
219
|
+
occlusion or multi-symbol scenes.
|
|
213
220
|
|
|
214
221
|
Camera-profile 1D results add `confidence` (0–1), `bounds`, `rotation`, and
|
|
215
222
|
`quality: { quietZone, checksum, rows, consistency }`. `bounds` is reported in the raster
|
|
@@ -300,9 +307,9 @@ console.log(result.text, result.gs1); // 0101234567890128 true
|
|
|
300
307
|
|
|
301
308
|
Binary content is accepted as a `Uint8Array` with `encoding: 'base256'`. The current high-level
|
|
302
309
|
decoder handles ASCII and Base256 codewords; C40, Text, X12 and EDIFACT input symbols are not yet
|
|
303
|
-
decoded. The current detector accepts axis-aligned square or rectangular symbols;
|
|
304
|
-
`
|
|
305
|
-
Arbitrary
|
|
310
|
+
decoded. The current detector accepts axis-aligned square or rectangular symbols; with
|
|
311
|
+
`profile: 'camera'`, the decode pipeline evaluates the eight fixed in-plane orientations at 45°
|
|
312
|
+
steps. Arbitrary perspective and perspective-skewed Data Matrix photographs are not yet guaranteed.
|
|
306
313
|
|
|
307
314
|
### Aztec Code
|
|
308
315
|
|
|
@@ -320,9 +327,9 @@ const result = decodeAztec(symbol);
|
|
|
320
327
|
console.log(result.text); // Greetings My Lord Sythos 👋
|
|
321
328
|
```
|
|
322
329
|
|
|
323
|
-
The image detector handles
|
|
324
|
-
central bull’s-eye. Severe photographic perspective remains an
|
|
325
|
-
gate rather than a guaranteed capability.
|
|
330
|
+
The image detector handles the eight fixed camera-profile orientations, inverted polarity and
|
|
331
|
+
quadrilateral sampling around the central bull’s-eye. Severe photographic perspective remains an
|
|
332
|
+
interoperability and robustness gate rather than a guaranteed capability.
|
|
326
333
|
|
|
327
334
|
### PDF417 (writer, matrix decoder and camera reader)
|
|
328
335
|
|
|
@@ -330,8 +337,8 @@ gate rather than a guaranteed capability.
|
|
|
330
337
|
(UTF-8), ECC levels 0–8, row-height inference and Reed–Solomon erasure correction. The direct
|
|
331
338
|
matrix decoder is available from `@sythos/js_barcode_universal/pdf417`.
|
|
332
339
|
|
|
333
|
-
The image helper handles clean module-aligned raster symbols, integer scale,
|
|
334
|
-
|
|
340
|
+
The image helper handles clean module-aligned raster symbols, integer scale, fixed 45°-step
|
|
341
|
+
camera orientations, automatic perspective estimation, mild blur/noise and an application-supplied
|
|
335
342
|
quadrilateral. Results expose `bytes` and ordered `segments` for byte-preserving payloads. Real
|
|
336
343
|
device validation covers Pixel 10/Chrome and iPhone 17/Safari with printed symbols and continuous
|
|
337
344
|
camera capture. Extreme glare, severe occlusion, curved media and multi-symbol scenes remain
|
|
@@ -357,17 +364,18 @@ const symbol = encodeMicroPDF417('MICRO PDF417', { compaction: 'text' });
|
|
|
357
364
|
console.log(decodeMicroPDF417(symbol).text);
|
|
358
365
|
```
|
|
359
366
|
|
|
360
|
-
The detector accepts clean, integer-scaled raster symbols and
|
|
361
|
-
perspective, severe photographic degradation and multi-symbol scenes are
|
|
362
|
-
robust capabilities.
|
|
367
|
+
The detector accepts clean, integer-scaled raster symbols and the eight fixed camera-profile
|
|
368
|
+
orientations. Arbitrary perspective, severe photographic degradation and multi-symbol scenes are
|
|
369
|
+
not yet claimed as robust capabilities.
|
|
363
370
|
|
|
364
371
|
### Micro QR Code
|
|
365
372
|
|
|
366
373
|
`microqr` implements the M1–M4 family with Numeric, Alphanumeric, ISO-8859-1 Byte and Kanji
|
|
367
374
|
payloads, BCH format protection, the four Micro QR masks and Reed–Solomon correction. M1 is
|
|
368
375
|
detection-only. ECI, FNC1/GS1 and Structured Append are intentionally outside the current API.
|
|
369
|
-
The detector accepts clean scaled rasters,
|
|
370
|
-
sampling, and rejects normal QR Model 2 symbols.
|
|
376
|
+
The detector accepts clean scaled rasters, the eight fixed camera-profile orientations, inverted
|
|
377
|
+
polarity and mild projective sampling, and rejects normal QR Model 2 symbols. Arbitrary perspective
|
|
378
|
+
and curved-media robustness are not claimed.
|
|
371
379
|
|
|
372
380
|
```js
|
|
373
381
|
import { encodeMicroQR, decodeMicroQR } from '@sythos/js_barcode_universal/microqr';
|
|
@@ -379,8 +387,9 @@ console.log(decodeMicroQR(symbol).text);
|
|
|
379
387
|
### rMQR Code
|
|
380
388
|
|
|
381
389
|
`rmqr` implements all 32 standard rectangular geometries, M/H ECC, Numeric, Alphanumeric, Byte,
|
|
382
|
-
Kanji and ECI payloads. The detector accepts clean integer-scaled rasters, quiet zones and
|
|
383
|
-
|
|
390
|
+
Kanji and ECI payloads. The detector accepts clean integer-scaled rasters, quiet zones and the
|
|
391
|
+
eight fixed camera-profile orientations; arbitrary photographic perspective and multi-symbol
|
|
392
|
+
scenes are not claimed.
|
|
384
393
|
|
|
385
394
|
```js
|
|
386
395
|
import { encodeRMQR, decodeRMQR } from '@sythos/js_barcode_universal/rmqr';
|
|
@@ -414,7 +423,7 @@ exports the QR symbol without embedding the remote artwork.
|
|
|
414
423
|
### Aztec Rune, Compact PDF417 and EAN supplements
|
|
415
424
|
|
|
416
425
|
`aztecrune` implements the fixed 11×11 Rune values 0–255 with clean raster
|
|
417
|
-
detection, inversion and
|
|
426
|
+
detection, inversion and the eight fixed camera-profile orientations. Its matrices were compared
|
|
418
427
|
exhaustively with ZXing-C++ as an independent black-box runtime; no ZXing
|
|
419
428
|
source or table is shipped.
|
|
420
429
|
|
|
@@ -602,8 +611,8 @@ Luminance conversion flattens the image to greyscale. Binarization turns that in
|
|
|
602
611
|
either globally or with a hybrid local threshold that survives uneven lighting. Detection locates
|
|
603
612
|
a symbol and its corners in that bit plane. Detectors that recover four perspective-aware corners
|
|
604
613
|
(currently QR) sample the symbol back through a perspective transform. Data Matrix currently uses
|
|
605
|
-
an axis-aligned bounding box
|
|
606
|
-
lost. Only then is the payload decoded.
|
|
614
|
+
an axis-aligned bounding box; the strict camera profile evaluates the eight fixed in-plane
|
|
615
|
+
orientations before error correction repairs what the camera lost. Only then is the payload decoded.
|
|
607
616
|
|
|
608
617
|
**Reed–Solomon is generic over the finite field.** The `GaloisField` class is constructed with a
|
|
609
618
|
field order and a primitive polynomial rather than hard-coding GF(256), which is what lets one
|