diff --git a/packages/qr-code-scanner/src/qr-code-scanner.js b/packages/qr-code-scanner/src/qr-code-scanner.js index 7f6a0bf69e18903e7e0d0bc1292527b7d2bf3a1b..417a93bffd69eec19f55e3e8ba7c299f4db3af64 100644 --- a/packages/qr-code-scanner/src/qr-code-scanner.js +++ b/packages/qr-code-scanner/src/qr-code-scanner.js @@ -267,14 +267,13 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { canvasElement.width = video.videoWidth; canvas.drawImage(video, 0, 0, canvasElement.width, canvasElement.height); - let maskWidth = 0; let maskHeight = 0; let maskStartX = canvasElement.width; let maskStartY = canvasElement.height; let imageData = canvas.getImageData(0 , 0, canvasElement.width, canvasElement.height) - + if (that.clipMask) { //draw mask let clip = canvasElement.width > canvasElement.height ? canvasElement.height/4 * 3 : canvasElement.width/4 * 3; @@ -289,7 +288,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { canvas.moveTo(0,0); canvas.lineTo(0, canvasElement.width); canvas.lineTo( canvasElement.width, canvasElement.height); - canvas.lineTo( canvasElement.width,0); + canvas.lineTo( canvasElement.height,0); canvas.rect(maskStartX, maskStartY, maskWidth, maskHeight); canvas.fill(); @@ -327,20 +326,26 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { } if (code) { - let topLeftCorner = code.location.topLeftCorner; - let topRightCorner = code.location.topRightCorner; - let bottomRightCorner = code.location.bottomRightCorner; - let bottomLeftCorner = code.location.bottomLeftCorner; + let topLeftCorner = {x: 0, y: 0}; + let topRightCorner = {x: 0, y: 0}; + let bottomRightCorner = {x: 0, y: 0}; + let bottomLeftCorner = {x: 0, y: 0}; if (that.clipMask) { - topLeftCorner.x += maskStartX; - topLeftCorner.y += maskStartY; - topRightCorner.x += maskStartX; - topRightCorner.y += maskStartY; - bottomRightCorner.x += maskStartX; - bottomRightCorner.y += maskStartY; - bottomLeftCorner.x += maskStartX; - bottomLeftCorner.y += maskStartY; + topLeftCorner.x = code.location.topLeftCorner.x + maskStartX; + topLeftCorner.y = code.location.topLeftCorner.y + maskStartY; + topRightCorner.x = code.location.topRightCorner.x + maskStartX; + topRightCorner.y = code.location.topRightCorner.y + maskStartY; + bottomRightCorner.x = code.location.bottomRightCorner.x + maskStartX; + bottomRightCorner.y = code.location.bottomRightCorner.y + maskStartY; + bottomLeftCorner.x = code.location.bottomLeftCorner.x + maskStartX; + bottomLeftCorner.y = code.location.bottomLeftCorner.y + maskStartY; + } + else { + topLeftCorner = code.location.topLeftCorner; + topRightCorner = code.location.topRightCorner; + bottomRightCorner = code.location.bottomRightCorner; + bottomLeftCorner = code.location.bottomLeftCorner; } drawLine(topLeftCorner, topRightCorner, color);