Commit graph

3662 commits

Author SHA1 Message Date
AlexGeller1 78faea8058
Prevent encoding of the empty string for PDF417 (#1523)
* Added code so that the PDF417 encoder throws an exception when attempting to encode the empty string
2022-05-05 18:01:14 -05:00
Jordan Wild c7a7b30f04
Adds orientation of pdf417 barcode to Result metadata (#1522)
* Adds orientation of pdf417 barcode to Result metadata

Co-authored-by: Jordan Wild <jwild@simplenexus.com>
2022-05-04 18:57:36 -05:00
Sean Owen 83cdc82aa1 Update jQuery in a mobile web page and add integrity check, just to be sure 2022-05-04 18:54:40 -05:00
axxel 3aa3832840
README.md: update description of nu-book c++ port (#1521)
* README.md: update description of nu-book c++ port

* README.md: revoke overreaching change
2022-05-03 07:33:36 -05:00
Sean Owen 4a6e03079b Fix last javadoc fix 2022-05-01 14:16:46 -06:00
Sean Owen 09e4a5824b Fix javadoc warnings from last release 2022-05-01 10:51:35 -06:00
Sean Owen 17d7e31796 Update site for 3.5.0 2022-05-01 10:44:06 -06:00
Sean Owen 1950f11204 Update Android modules for 3.5.1-SNAPSHOT 2022-05-01 10:41:57 -06:00
Sean Owen ea779f0639 [maven-release-plugin] prepare for next development iteration 2022-05-01 10:16:17 -06:00
Sean Owen eb76d0283c [maven-release-plugin] prepare release zxing-3.5.0 2022-05-01 10:16:15 -06:00
Sean Owen 89a56210cc Update Android modules for 3.5.0 2022-05-01 10:13:28 -06:00
Sean Owen 939632072f Minor dep updates 2022-04-30 13:28:04 -06:00
omrfdk fbeeae49f5
Update README.md: Add SCodes Qt/Qml wrapper library link (#1518) 2022-04-29 07:53:05 -05:00
Shreyas Patil 4f9f466f7d
Update AndroidManifest.xml: set exported flag (#1516)
Set flag `android:exported` to all the activities having `<intent-filter>`.
2022-04-28 09:20:24 -05:00
AlexGeller1 5f20b8d095
Replacing non ISO-8859-1 characters in PDF417 input with '?' (#1514)
* Replacing non ISO-8859-1 characters in input with '?' when neither a character set nor multi-eci encoding is selected.

* Changed code to raise an exception for characters not encodeable in ISO-8859-1
2022-04-27 09:46:49 -05:00
AlexGeller1 8265242784
Share the ECI string builder of the data matrix decoder with the PDF417 decoder (#1508)
* Shared the ECI string builder of the datamatrix decoder with the PDF417 decoder
2022-03-13 09:40:09 -05:00
AlexGeller1 ce1a1a53cf
Add multi-eci decoding for PDF417 (#1507)
* - Added multi-eci decoding for PDF417
- Fixed issue that some multi-eci encoded PDF417 codes were missing ECIs

* Syntactic changes

* - Fixed issue that ECIs were not processed correctly in all allowed locations in binary encoded data as specified in section 5.5.3.2 of the spec
- Added verifying unit test
2022-03-09 08:24:37 -06:00
AlexGeller1 92854d4a55
Add support for multi-eci encoding for PDF417 (#1506)
* - Added multi-eci encoding for PDF417
- Fixed issue that the PDF417 decoder incorrectly decoded input with a leading ECI and no explicit latch to TEXT encoding
2022-03-05 08:07:37 -06:00
Sean Owen 4bd257e8c5 BitArray perf improvement, possibly addressing https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=45189 2022-03-03 10:11:45 -06:00
AlexGeller1 9460f0620a
Adding more PDF417 decoding tests (#1504)
* Added more PDF417 decoding tests
2022-03-02 08:27:40 -06:00
Sean Owen feed14328e Fix GA with Java 17 instead 2022-03-01 15:31:37 -06:00
Sean Owen 0fe540c1fc Add Java 14 test flow 2022-03-01 15:12:45 -06:00
Sean Owen aff551ccb9 More tries to move from Travis to GA tests 2022-02-28 23:06:04 -06:00
Sean Owen 5765cc099a Remove Travis test config 2022-02-28 22:20:57 -06:00
Sean Owen a32ea840c0
Try Github Actions for tests 2022-02-28 22:18:22 -06:00
AlexGeller1 427ece8ae7
Fix bug #1502 that PDF417 barcodes without initial latch to Text compaction mode fail to decode (#1503)
* Fixed bug that barcodes without initial latch to text encoding failed to decode
2022-02-27 08:27:24 -06:00
Sean Owen 87f540f5bd Possible fix for https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=44778 2022-02-17 14:38:17 -06:00
Sean Owen 29fbff0802 Minor code changes to previous PR merges 2022-02-17 14:14:37 -06:00
Sean Owen f3f73b47d3 Update to 3.5.0-SNAPSHOT for next release; deps updates 2022-02-17 14:10:00 -06:00
AlexGeller1 13465b3f1c
Added option to force C40 encoding in data matrix (#1495)
* Added option FORCE_C40

* Restored original public API

* Improved javadoc for EncodeHintType.FORCE_C40

* More javadoc fixes
2022-01-26 09:47:18 -06:00
AlexGeller1 39440b3015
Fixed IllegalArgumentException in ErrorCorrection.encodeECC200 cause by the minimal encoder not adding padding (#1496) 2022-01-25 17:20:02 -06:00
AlexGeller1 94fb277607
Minimal encoding for Code-128 (2nd, less intrusive version) (#1484)
* 2nd version of Code128 minimal encoding.
2022-01-20 12:25:45 -06:00
Peter Abeles 6c2ea9e6bc
Update README.md (#1485)
Added BoofCV to related third-party open source projects
2022-01-18 18:31:45 -06:00
Sean Owen 10d6b08fc6 Probable fix for AIOOBE from https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43765 2022-01-18 14:29:46 -06:00
Sean Owen 037efb0c28 Set FEATURE_SECURE_PROCESSING when reading XML in HtmlAssetTranslator, just in case (#1482) 2022-01-14 08:43:05 -06:00
Sean Owen b30da44d01 Add ReaderException.setStackTrace 2022-01-12 14:18:32 -06:00
AlexGeller1 ab23778d4b
Minimal encoding for Data Matrix with multi ECI and GS1-FNC1 support (2nd) (#1479)
* Added Data Matrix minimal encoding with multi-ECI and GS1-FNC1 support.

* Added support for MACRO-5 and MACRO-6

* Improved comment
2022-01-12 11:58:24 -06:00
Sean Owen 491006ac3b Add isStackTrace support to NotFoundException 2022-01-11 10:48:24 -06:00
AlexGeller1 c4266bf09c
Add support for multiple character-ECIs in data matrix decoder (#1474)
* Added support for multiple character-ECIs

* - Changed from ArrayList<Byte> to ByteArrayOutputStream
- Added blank lines

* Improved performance for the general case (without ECI)
2022-01-05 09:32:36 -06:00
AlexGeller1 9b972bbb07
Simplified code, improved memory usage and performance of the QR-Code minimal encoder. (#1465)
* Simplified code, improved memory usage and performance.

* Simplified code
2021-12-08 09:11:04 -06:00
AlexGeller1 21eb978d67
Fix of error in specification ISO/IEC 16022 Second edition Annex P as suggested by Martin Burke of zint (See 68566fefd2/) (#1459)
Quote of Martin's proposed changes to the spec:
The algorithm can be salvaged to be at least sound by making those changes, e.g. by adding to step e):

 "1) If the next character cannot be encoded as X12, switch to ASCII mode and go to step b)."

(and renumbering the following sub-steps). Similarly step f):

"1) If the next character cannot be encoded as EDIFACT, switch to ASCII mode and go to step b)."
2021-11-15 18:25:31 -06:00
AlexGeller1 c25029d29a
Fix bug624: Illegal Character Exception (#1454)
* - added code to suppress the terminator if the capacity of the version is less than 4 bit
- added test case

* - Removed code in MinimalEncoder that added Mode.TERMINATOR (is taken care of in Encoder.terminateBits)
- Removed the corresponding test case

* Updated test cases

* Improved documentation

* Changed documentation to not use an example with an unsupported character encoding

* Improved wording of comment

* - Simplified code
- Added space after comma in several places

* Added support for more character sets supported by CharacterSetECI

* Syntactic enhancements

* Changed instantiation of generic types to diamond style

* Updated documentation of the QR_COMPACT hint to explain the impact of setting the CHARACTER_SET hint .

* Changed whitespace

* Removed comment

* Fixed typos in comments

* Added text cases for KANJI and Shift_JS encoding

* Improved comments on Japanese language test cases

* Fixed bug

* Compacted code slightly

* Whitespace changes

* Deepend indent
2021-11-11 08:23:33 -06:00
Sean Owen 6c034f9775 Minor code tweaks 2021-10-21 23:38:11 -05:00
AlexGeller1 2e22d09479
Compact QR-Code: Support more character sets (in particular cp1256 (Arabic) and Shift-JIS) (#1453)
* - added code to suppress the terminator if the capacity of the version is less than 4 bit
- added test case

* - Removed code in MinimalEncoder that added Mode.TERMINATOR (is taken care of in Encoder.terminateBits)
- Removed the corresponding test case

* Updated test cases

* Improved documentation

* Changed documentation to not use an example with an unsupported character encoding

* Improved wording of comment

* - Simplified code
- Added space after comma in several places

* Added support for more character sets supported by CharacterSetECI

* Syntactic enhancements

* Changed instantiation of generic types to diamond style

* Updated documentation of the QR_COMPACT hint to explain the impact of setting the CHARACTER_SET hint .

* Changed whitespace

* Removed comment

* Fixed typos in comments

* Added text cases for KANJI and Shift_JS encoding

* Improved comments on Japanese language test cases
2021-10-21 10:10:28 -05:00
AlexGeller1 c729abe393
Compacted QR-code: remove needless adding of Mode.TERMINATOR (is taken care of in Encoder.terminateBits) (#1452)
* - added code to suppress the terminator if the capacity of the version is less than 4 bit
- added test case

* - Removed code in MinimalEncoder that added Mode.TERMINATOR (is taken care of in Encoder.terminateBits)
- Removed the corresponding test case

* Updated test cases

* Improved documentation

* Changed documentation to not use an example with an unsupported character encoding

* Improved wording of comment

* - Simplified code
- Added space after comma in several places
2021-10-19 08:47:58 -05:00
AlexGeller1 128775149b
Add support for EncodeTypeHint.CHARACTER_SET for compacted QR-Codes (#1450)
* 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)
2021-10-17 08:57:06 -05:00
Sean Owen 831ebac6e7 Minor code style updates to MinimalEncoder and a few other files ; minor dep updates 2021-10-12 21:06:05 -05:00
AlexGeller1 3909ebe294
Fix qr compaction (#1449)
* - 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.
2021-10-12 09:09:19 -05:00
Sean Owen f984496a10 Fix javadoc error 2021-10-11 11:44:10 -05:00
Choi Su Beom f4f3c2971d
fix(core): do not evaluate out of index as white on qrcode mask evaluation (#1446)
* fix(core): do not evaluate out of index as white on qrcode mask evaluation
2021-10-09 13:15:00 -05:00