mirror of
https://github.com/zxing/zxing.git
synced 2025-02-02 05:41:08 -08:00
* Added experimental version of QR-Code compaction which can be activated via EncodeHintType.QR_COMPACT * - Changed algorithm from recursive divide and conquer to iterative Dijkstra - Performed the requested modifications. * Added better debug output and better documententation of the algorithm * - Added missing error handling in case of a failing assert - Fixed typo in the documentation * Fixed bug that the minimal encoder would fail with an internal error if the string to encode contained only characters from ISO-8859-1 and on or more character that is not defined in any of the ISO-8859 characters sets. * Added unit tests * - indented class and method comments - fixed code indententation - added vertical spacing in statement lists to separate locical blocks - added comments to document some numeric constants - commented out debug logging - made class ResultNode final and all but the methods called by the class Encoder private. * - Fixed indentation and line length - Improved comments * Fixed line length * Improved comments * - Whitespace and comment style changes - Replaced string concatentation with StringBuilder.append() - Replaced Vector with ArrayList - Made members that are ony modified in the constructor final - Made other minor changes * - Made more members final - replaced assert by throwing an IllegalStateException * Changed internal data representation to be based on java.util.LinkedList * Removed uneccessary spaces and comments * Improved the debug output (now produces a compacted graph) * - Added code to exclude not supported ECIs - Fixed regression that bits were incorrectly computed * - Fixed regression that bits were wrongly computed - Improved compaction - added a commented proposal for unit test that makes use of the decoder to validate the encoded bits * Removed useless comparisons * Removed commented code * Optimization: added code to cache the value of LinkedList.size(). * Added more test cases * - Added support for EncodeTypeHint.CHARACTER_SET - Added support to encode in all ISO-8859 character sets available on the platform - Removed code that handles failing asserts * - Replaced string switch case with HashMap lookup - Reintroduced asserts * - Replaced <code> with {@code} - Changed indentation in comment - Simplified code * Improved documentation * Added comment about decoding compatibility with zxing. * - Made MinimalEncoder responsible of ensuring that the bits fit in the returned version. - Removed asserts that throw NPE in case of falure. * Restricted encoder to use only encodings defined in CharacterSetECI * Improved clarity and readability of the algorithm and of the datastrutures used. - Minimizing algorithm is based on immutable edges - ResultList now contains exaclty one ResultNode per mode and possibly several as before * Changed unit tests (forgotten in previous push) |
||
---|---|---|
.github | ||
.reuse | ||
android | ||
android-core | ||
android-integration | ||
core | ||
docs | ||
javase | ||
src | ||
zxing.appspot.com | ||
zxingorg | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
CHANGES | ||
LICENSE | ||
NOTICE | ||
pom.xml | ||
README.md |

Project in Maintenance Mode Only
The project is in maintenance mode, meaning, changes are driven by contributed patches. Only bug fixes and minor enhancements will be considered. The Barcode Scanner app can no longer be published, so it's unlikely any changes will be accepted for it. There is otherwise no active development or roadmap for this project. It is "DIY".
Get Started Developing
To get started, please visit: https://github.com/zxing/zxing/wiki/Getting-Started-Developing
ZXing ("zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages.
Supported Formats
1D product | 1D industrial | 2D |
---|---|---|
UPC-A | Code 39 | QR Code |
UPC-E | Code 93 | Data Matrix |
EAN-8 | Code 128 | Aztec |
EAN-13 | Codabar | PDF 417 |
UPC/EAN Extension 2/5 | ITF | MaxiCode |
RSS-14 | ||
RSS-Expanded |
Components
Active
Available in previous releases
Module | Description |
---|---|
cpp | C++ port |
iphone | iPhone client |
objc | Objective C port |
actionscript | Partial ActionScript port |
jruby | JRuby wrapper |
ZXing-based third-party open source projects
Module | Description |
---|---|
QZXing | port to Qt framework |
glassechidna/zxing-cpp | port to C++ (forked from the deprecated official C++ port) |
nu-book/zxing-cpp | recent port to C++ |
zxing_cpp.rb | bindings for Ruby (not just JRuby), powered by zxing-cpp |
jsqrcode | port to JavaScript |
python-zxing | bindings for Python |
ZXing .NET | port to .NET and C#, and related Windows platform |
php-qrcode-detector-decoder | port to PHP |
ZXing Delphi | Port to native Delphi object pascal, targeted at Firemonkey compatible devices (IOS/Android/Win/OSX) and VCL. |
ZXingObjC | Port to Objective-C |
php-zxing | PHP wrapper to Zxing Java library |
zxing-js/library | TypeScript port of ZXing library |
pyzxing | Python wrapper to ZXing library |
Other related third-party open source projects
Module | Description |
---|---|
Barcode4J | Generator library in Java |
ZBar | Reader library in C99 |
OkapiBarcode |
Links
Contacting
Post to the discussion forum or tag a question with zxing
on StackOverflow.
Etcetera
QR code is trademarked by Denso Wave, inc. Thanks to Haase & Martin OHG for contributing the logo.