3c693c7bd5
Add a new setting that will automatically rotate every other frame by 90 degrees. This makes it possible to read vertical 1D barcodes too. ZXing can read 1D barcodes horizontally only. The setting is unset by default because it makes recognition of 1D barcodes a tiny bit slower since half of the frames are now useless for ZXing (because the barcode is in the wrong orientation on them). On a fast device, this is hardly noticeable. But on a low-end device it makes a slight difference which is why the setting is unset by default. |
||
---|---|---|
app | ||
fastlane/metadata/android/en-US | ||
gradle/wrapper | ||
svg | ||
.gitignore | ||
build.gradle | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
Makefile | ||
PRIVACY.md | ||
README.md | ||
settings.gradle |
Binary Eye
Yet another barcode scanner for Android. As if there weren't enough.
This one is free, without any ads and open source.
Works in portrait and landscape orientation, can read inverted codes, comes in Material Design and can also generate barcodes.
Binary Eye uses the ZXing ("Zebra Crossing") barcode scanning library.
Screenshots
Download
Supported Barcode Formats
Read
ZXing can read the following barcode formats:
- AZTEC
- CODABAR
- CODE 39
- CODE 93
- CODE 128
- DATA MATRIX
- EAN 8
- EAN 13
- ITF
- MAXICODE (only when unrotated and unskewed, see 77, because of which Binary Eye cannot read this barcode)
- PDF417
- QR CODE
- RSS 14
- RSS EXPANDED
- UPC A
- UPC E
- UPC EAN EXTENSION
Generate
ZXing can generate the following barcode formats:
RenderScript
This app uses RenderScript to resize and rotate the camera image. Unfortunately, RenderScript has some nasty gotchas.
RenderScript.forceCompat()
It's necessary to call RenderScript.forceCompat()
on some devices/roms.
RenderScript.forceCompat()
needs to be run before any other RenderScript
function and unfortunately there is no way to know if invoking forceCompat()
is necessary or not.
If RenderScript.forceCompat()
is necessary, a RSRuntimeException
will
be thrown and the only option is to restart the app, this time with calling
forceCompat()
first.
Calling RenderScript.forceCompat()
means the processing is done in
software so you probably don't want to enable it by default.
macOS Catalina
At the time of writing, calling RenderScript.forceCompat()
in a build made
on macOS Catalina with build tools 29.0.3 will crash the app. This is a bug
in the build tools for Catalina.
So do not build release builts on macOS Catalina with build tools 29.0.3.
Building on Linux with 29.0.3 works fine.
App Bundle
At the time of writing, ./gradlew bundleRelease
will produce a broken
App Bundle without the necessary RenderScript libraries. This is another
bug in the build tools.