Skip to content

ZXing JS fails to decode many simple and clear QR codes that are decoded successfully by ZXing for Java #653

Description

@a-student

Describe the bug

ZXing JS fails to decode many simple and clear QR codes that are decoded successfully by ZXing for Java.

I am using zxing-js as shown in the example on the project's main page.

The live preview also fails to decode these QR codes:

To Reproduce

  1. Go to the live preview https://zxing-js.github.io/library/examples/multi-image/
  2. Replace the img src with one of the QR codes provided below.
  3. Click Decode.
  4. Observe that ZXing JS fails to decode it.
  5. Check that the QR code is successfully decoded by ZXing Java https://zxing.org/w/decode.jspx

Problematic QR codes

ffffffffffffff

Image

Data URL for convenience:

data:image/png;base64,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

kkkkkkkkkkk

Image

Data URL for convenience:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKEAAAChCAYAAACvUd+2AAAGnklEQVR4Aeyd225bOwwFvfr//5yiCRoURrkc0Zu6bE6B9jSmxMtwXiwcoL8++AWBxQR+PfgFgcUEkHDxAij/eCAhFiwngITLV0ADSIgDywncX8LliGngFQEroaSHdPbvVwAycSnHJFPrzx0pV0/a596fOaLfVsLoEp9D4EoCSHglTXKlCCBhChuXriSAhFfSJFeKABKmsG116fhmkPD4FZ4/QFrCj4+Pxy6/s2uQck8Yrp5jIsX1XE4Xc/Vmx1yfLpaW0CUlBoERAkg4QouzJQSQsAQrSUcIIOEILc6WEHgpYUlVkkLgHwJI+A8M/rqGQImEUvwUIeViFXjcE4arN/ue68XFpBxrKb7n6mVjJRJmm+FeTwJI2HPvW02NhFuto2czSPjoufidpkbCnbbRtBckbLr4ncZuLaGUe4qQcvd2WvxOvbSWcKdFdO4FCTtvf5PZkXCTRVS2sXtuJNx9Qw36Q8IGS959RCTcfUMN+kPCxJLd/0Ujxc83UhxLtHGbK0h4m1WeOwgSnru723T+voS3QcEgqwgg4Sry1P0mgITfKPjLKgJIuIo8db8JlEjonjCyse+OL/yL68WVkc54anHzZWOOSzZWImG2Ge71JICEr/fOiWICSFgMmPSvCSDha0acKCaAhMWASf+aABK+ZsSJYgJpCaX4mUKaG8sykuI+3ROGq5e953K6mBTPIM2NuT5dLC2hS0rsMAKL20XCxQug/OOBhFiwnAASLl8BDSAhDiwngITLV0ADVkL33HBKLLtiSeE/OO5ySvE9x8zldPdOibn5rITu4s9jnISAJ4CEng/RCQSQcAJkSngCSOj5EJ1AAAknQKaEJ4CEng/RCQTSEkrxU4TrW4rvSdfHXC8uNvL08dOz0tz5pFw9x0WKc7p7LpaW0CUlBoERAkg4QouzJQSQsAQrSUcIIOEILc6WEEDCEqwkHSGAhCO02p6tHbxEQin+Gu+eM9yo7p6LuZzZmBTPJ8Ux12c25maYndP14mIlErqCxCDwTAAJn4nw83QCSDgdOQWfCSDhMxF+nk4ACacjp+AzgR0kfO6Jn5sRsBJK1z83OL7uSUGKe5HiWEU9l9PFpLhPKY65nLNjUtynFMdcn1ZCd5EYBK4igIRXkSRPmgASptFx8SoCSHgVSfKkCSBhGt3ARY5aAkho8RCcQSAtoRR/HZfimBtKyt2reNpxObMxN3s2JuWYuXrS9TldvbSELikxCIwQQMIRWpwtIYCEJVhJOkIACUdocTYi8NbnSPgWPi5fQQAJr6BIjrcIWAndU8RbVYPL2XpS7klhdr1g7CUfSzGzLJfsPSvhEjoUbUcACdutfL+BkXC/nbTr6AgJ222l2cBI2GzhO46LhDtupVlPaQnd13EXy/J1ObMxKX6mkOKYm0GK77k+XU4Xczmlub24Pl0sLaFLSgwCIwSQcIQWZ0sIIGEJ1tGkvc8jYe/9bzE9Em6xht5NIGHv/W8xvZVQir/iS2fEHGX3vFERy/YixaxdTheTcjkdF1fPxayE7iIxCFxFAAmvIkkeS8AFkdDRITaFABJOwUwRRwAJHR1iUwgg4RTMFHEE0hK6r+qzY25AF5PiZwppn1h2BreHbE4p5uJyulhaQpeUGARGCNxDwpGJObsdASTcbiX9GkLCfjvfbmIk3G4l/RpCwn47327iEgml+Gu8lIvNJueeN1zM9enuZWOunhSzdvcqenH1SiR0BYmlCNz6EhLeer1nDIeEZ+zp1l0i4a3Xe8ZwSHjGnm7dJRLeer1nDIeEwZ6k+HlDimNBus+PpevvzX5O+Rzk4j8+Jbw4J+kgMEQACYdwcbiCABJWUCXnEAEkHMLF4QoCSFhBlZxDBJBwCBeHKwg0kfD/6Nzzxv9vrPk026cUPwlV5JTieo5cawkdGGLzCCDhPNZUCgggYQCGj+cRQMJ5rKkUEEDCAAwfzyOAhPNYl1Y6OXmJhO7rfzZWAVmKnxRcn9lesjmluE8pjrk+pfieFMdczmysRMJsM9zrSQAJe+59q6mRcKt19GwGCXvufaupkXCrdfRs5mcS9mTD1JMIpCWU4q/x0txYlpV7MpHiGdw9F3N9SnE9d8/FXC+zY67PtIQuKTEIjBBAwhFanC0hgIQlWEk6QgAJR2hxtoQAEn5h5c+FBJBwIXxKfxGwEs7+Gl9R72vM8T9dL+PZXt9w9bKx11X3OGEl3KNFurg7ASS8+4YPmA8JD1jS3VtEwrtv+O98G/8XCTdeTpfWkLDLpjee8zcAAAD//4wJs1EAAAAGSURBVAMAlDFbczGqNiMAAAAASUVORK5CYII=

Expected behavior

ZXing JS should successfully decode these QR codes, as they are simple and clear QR codes and are decoded successfully by ZXing for Java.

Screenshots

Image Image

Desktop

  • OS: [Windows 11]
  • Browser: [Chrome]
  • Version 151.0.7922.109 (Official Build) (64-bit)

Additional context

You can find many more examples using qrcode.expert. Expand the Scannability Report to view the scan results from different QR-code readers/tools. (The downloaded PNG image is not exactly the same as the one sent to ZXing JS).
This suggests that the issue may not be limited to the examples provided above.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions