Skip to content

Commit cdb646c

Browse files
committed
perf: ignore color inverted QR codes
Standard QR codes have black modules on white background. If an image can't be decoded it has to be re-processed to check if it might be a QR code with light modules on dark background. Checking for this edge case is not worth the performance loss though. BREAKING CHANGE: Color inverted QR codes are not detected anymore.
1 parent 3285101 commit cdb646c

File tree

3 files changed

+30
-16
lines changed

3 files changed

+30
-16
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
},
7878
"dependencies": {
7979
"babel-runtime": "^6.26.0",
80-
"jsqr": "^1.1.0",
80+
"jsqr": "^1.2.0",
8181
"webrtc-adapter": "^6.2.1"
8282
}
8383
}

src/misc/worker.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import jsQR from "jsqr";
33
self.addEventListener("message", function(event) {
44
const imageData = event.data;
55

6-
const result = jsQR(imageData.data, imageData.width, imageData.height);
6+
const result = jsQR(imageData.data, imageData.width, imageData.height, {
7+
inversionAttempts: "dontInvert"
8+
});
79

810
let content = null;
911
let location = null;

yarn.lock

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,10 @@ ansi-styles@^3.2.1:
283283
dependencies:
284284
color-convert "^1.9.0"
285285

286+
ansicolors@~0.2.1:
287+
version "0.2.1"
288+
resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef"
289+
286290
ansicolors@~0.3.2:
287291
version "0.3.2"
288292
resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"
@@ -420,10 +424,10 @@ async-each@^1.0.1:
420424
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
421425

422426
async@^2.1.2:
423-
version "2.6.2"
424-
resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381"
427+
version "2.5.0"
428+
resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
425429
dependencies:
426-
lodash "^4.17.11"
430+
lodash "^4.14.0"
427431

428432
asynckit@^0.4.0:
429433
version "0.4.0"
@@ -2548,10 +2552,14 @@ esprima@^2.6.0:
25482552
version "2.7.3"
25492553
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
25502554

2551-
esprima@^4.0.0, esprima@~4.0.0:
2555+
esprima@^4.0.0:
25522556
version "4.0.1"
25532557
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
25542558

2559+
esprima@~3.0.0:
2560+
version "3.0.0"
2561+
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9"
2562+
25552563
esquery@^1.0.0:
25562564
version "1.0.0"
25572565
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
@@ -3063,7 +3071,7 @@ glob-to-regexp@^0.3.0:
30633071
version "0.3.0"
30643072
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
30653073

3066-
glob@^7.0.0:
3074+
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
30673075
version "7.1.2"
30683076
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
30693077
dependencies:
@@ -3074,7 +3082,7 @@ glob@^7.0.0:
30743082
once "^1.3.0"
30753083
path-is-absolute "^1.0.0"
30763084

3077-
glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
3085+
glob@^7.1.3:
30783086
version "7.1.3"
30793087
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
30803088
dependencies:
@@ -3837,8 +3845,8 @@ java-properties@^0.2.9:
38373845
resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-0.2.10.tgz#2551560c25fa1ad94d998218178f233ad9b18f60"
38383846

38393847
js-base64@^2.1.9:
3840-
version "2.5.1"
3841-
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121"
3848+
version "2.3.2"
3849+
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.2.tgz#a79a923666372b580f8e27f51845c6f7e8fbfbaf"
38423850

38433851
js-beautify@^1.6.3:
38443852
version "1.9.0"
@@ -3958,7 +3966,7 @@ jsprim@^1.2.2:
39583966
json-schema "0.2.3"
39593967
verror "1.10.0"
39603968

3961-
jsqr@^1.1.0:
3969+
jsqr@^1.2.0:
39623970
version "1.2.0"
39633971
resolved "https://registry.yarnpkg.com/jsqr/-/jsqr-1.2.0.tgz#f93fc65fa7d1ded78b1bcb020fa044352b04261a"
39643972

@@ -6163,11 +6171,11 @@ redent@^2.0.0:
61636171
indent-string "^3.0.0"
61646172
strip-indent "^2.0.0"
61656173

6166-
redeyed@~2.1.0:
6167-
version "2.1.1"
6168-
resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b"
6174+
redeyed@~1.0.0:
6175+
version "1.0.1"
6176+
resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a"
61696177
dependencies:
6170-
esprima "~4.0.0"
6178+
esprima "~3.0.0"
61716179

61726180
reduce-css-calc@^1.2.6:
61736181
version "1.3.0"
@@ -6447,7 +6455,11 @@ schema-utils@^0.4.0:
64476455
ajv "^6.1.0"
64486456
ajv-keywords "^3.1.0"
64496457

6450-
sdp@^2.6.0, sdp@^2.9.0:
6458+
sdp@^2.6.0:
6459+
version "2.7.4"
6460+
resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.7.4.tgz#cac76b0e2f16f55243d25bc0432f6bbb5488bfc1"
6461+
6462+
sdp@^2.9.0:
64516463
version "2.9.0"
64526464
resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.9.0.tgz#2eed2d9c0b26c81ff87593107895c68d6fb9a0a6"
64536465

0 commit comments

Comments
 (0)