From df70792e33896495cdbfb23e69e1667ca59db937 Mon Sep 17 00:00:00 2001 From: Hadrien Date: Thu, 27 Jul 2023 16:14:16 +0200 Subject: [PATCH 1/3] fix/set dimensions greater or equal patch size --- src/locator/barcode_locator.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locator/barcode_locator.js b/src/locator/barcode_locator.js index 5c4c267..3bcb560 100644 --- a/src/locator/barcode_locator.js +++ b/src/locator/barcode_locator.js @@ -582,8 +582,8 @@ export default { console.log(`Patch-Size: ${JSON.stringify(patchSize)}`); } - inputStream.setWidth(Math.floor(Math.floor(size.x / patchSize.x) * (1 / thisHalfSample) * patchSize.x)); - inputStream.setHeight(Math.floor(Math.floor(size.y / patchSize.y) * (1 / thisHalfSample) * patchSize.y)); + inputStream.setWidth(Math.max(Math.floor(Math.floor(size.x / patchSize.x) * (1 / thisHalfSample) * patchSize.x), patchSize.x)); + inputStream.setHeight(Math.max(Math.floor(Math.floor(size.y / patchSize.y) * (1 / thisHalfSample) * patchSize.y), patchSize.y)); if ((inputStream.getWidth() % patchSize.x) === 0 && (inputStream.getHeight() % patchSize.y) === 0) { return true; From 640303df5127e035face0284af41230da80e1983 Mon Sep 17 00:00:00 2001 From: Hadrien Date: Mon, 31 Jul 2023 18:51:16 +0200 Subject: [PATCH 2/3] feat/add test for DOMException on canvas update --- test/fixtures/no_code/image-001.jpg | Bin 0 -> 16569 bytes test/integration/integration.spec.ts | 52 ++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/no_code/image-001.jpg diff --git a/test/fixtures/no_code/image-001.jpg b/test/fixtures/no_code/image-001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..27c1dffc508e7c7b9c074992e4f708af8ae40317 GIT binary patch literal 16569 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 RA@Wqx3>HuZP=l~P{s*g@aPt5F literal 0 HcmV?d00001 diff --git a/test/integration/integration.spec.ts b/test/integration/integration.spec.ts index f049838..c8e9c0f 100644 --- a/test/integration/integration.spec.ts +++ b/test/integration/integration.spec.ts @@ -17,7 +17,7 @@ if (typeof it.allowFail === 'undefined') { return Promise.resolve().then(() => { return callback.apply(this, arguments); }).catch((err) => { - console.trace('* error during test', err); + console.trace('* error during test', title, err); this.skip(); }); }); @@ -47,6 +47,28 @@ function runDecoderTest(name: string, config: QuaggaJSConfigObject, testSet: Arr }); } +// run test that should not fail but no barcode is in the images +function runNoCodeTest(name: string, config: QuaggaJSConfigObject, testSet: Array<{ name: string, result: string, format: string }>) { + describe(`Not decoding ${name}`, () => { + testSet.forEach((sample) => { + it('should run without error', async function() { + this.timeout(20000); // need to set a long timeout because laptops sometimes lag like hell in tests when they go low power + const thisConfig = { + ...config, + src: `${typeof window !== 'undefined' ? '/' : ''}test/fixtures/${name}/${sample.name}`, + }; + const result = await Quagga.decodeSingle(thisConfig); + expect(result).to.be.an('Array'); + expect(result).to.be.empty; + // // console.warn(`* Expect result ${JSON.stringify(result)} to be an object`); + expect(Quagga.canvas).to.be.an('Object'); + expect(Quagga.canvas.dom).to.be.an('Object'); + expect(Quagga.canvas.ctx).to.be.an('Object'); + }); + }); + }); +} + function generateConfig(configOverride: QuaggaJSConfigObject = {}) { const config: QuaggaJSConfigObject = { inputStream: { @@ -410,3 +432,31 @@ describe('External Reader Test, using stock code_128 reader', () => { ); }); }); + +describe('Canvas Update Test, avoid DOMException', () => { + describe('works', () => { + runNoCodeTest( + 'no_code', + generateConfig({ + decoder: { + readers: ['code_128_reader', 'ean_reader'], + }, + inputStream: { + constraints: { + width: NaN, + height: NaN + }, + singleChannel: false, + }, + locate: false, + locator: { + halfSample: true, + patchSize: 'x-large' + } + }), + [ + { 'name': 'image-001.jpg', 'result': null, format: 'code_128' }, + ] + ); + }); +}); From 336d7099160e679ee9c997c406ba13c5bb97ed67 Mon Sep 17 00:00:00 2001 From: Hadrien Date: Mon, 31 Jul 2023 18:51:50 +0200 Subject: [PATCH 3/3] chore/add hadrien as contributor --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 384f5d4..4979f8e 100644 --- a/package.json +++ b/package.json @@ -136,7 +136,8 @@ "Sudham Jayanthi ", "Ben Khoo ", "Andy Edinborough ", - "Claudio Cocciarelli " + "Claudio Cocciarelli ", + "Hadrien Foucault " ], "license": "MIT", "engines": {