The rotate code was setting the rotated points in a copy of the vector of points, rather than
in the vector owned by the result. Use a reference instead of a copy so changes persist.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1995 59b500cc-1b3d-0410-9834-0bbf25fbcc57
I tweaked things a little, small formatting (to help me diff) and
made some of the protection levels match the Java code. Nothing
semantic.
Great work. Thanks!
git-svn-id: https://zxing.googlecode.com/svn/trunk@1986 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This provide C++ support for Hanzi from issue 582. With it the C++
qrcode blackbox test results again match the Java results.
The changes are mostly a re-port of various pieces of the Java code
for supporting modes and bit stream parsing in QR codes. It expands
the modes/parsing including ECI and FNC, refactors StringUtils as was
done in Java, and makes DecoderResult include the fields that the Java
code has.
Although the non-qrcode blackbox tests don't all match the Java code
(a known issue) the entire blackbox suite was run under valgrind and
has no errors, including invalid memory references and leaks.
This commit also includes a few cleanups for things like files that
had mixed line endings, i.e., a combination of LF and CR-LF.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1966 59b500cc-1b3d-0410-9834-0bbf25fbcc57
re-port
Detector::sizeOfBlackWhiteBlackRunBothWays
and
Detector::sizeOfBlackWhiteBlackRun
to reflect changes from r1820 and earlier.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1838 59b500cc-1b3d-0410-9834-0bbf25fbcc57
Semantically, this is just C++ version of the changes from Java. I also did
some minor renaming of variables to match the current Java source to aide
in keeping the two trees in sync.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1754 59b500cc-1b3d-0410-9834-0bbf25fbcc57
Add DEBUG and PIC flags to scons so you can now build without debug, e.g.,
scons DEBUG=false lib
or with -fPIC forced, e.g,.
scons PIC=true lib
Defaults haven't changed.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1550 59b500cc-1b3d-0410-9834-0bbf25fbcc57
x coordinate of 1D barcodes to always be flipped, as if they had been
read upside down.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1547 59b500cc-1b3d-0410-9834-0bbf25fbcc57
to improve performance. There is no change in the number of images
which pass the unit tests.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1535 59b500cc-1b3d-0410-9834-0bbf25fbcc57
a line in the sand: no one may throw an exception from decodeRow(). Next up
is to throw fewer exceptions internally.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1527 59b500cc-1b3d-0410-9834-0bbf25fbcc57
that getRow() and getMatrix() require the caller to delete the allocated memory.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1521 59b500cc-1b3d-0410-9834-0bbf25fbcc57
- make UPCEANReader fail if there's no quiet zone after the end marker, vastly reducing UPC_E false positives
git-svn-id: https://zxing.googlecode.com/svn/trunk@1495 59b500cc-1b3d-0410-9834-0bbf25fbcc57
ITFReader.cpp:75 was catching and re-throwing Exception instead of ReaderException, causing scanning to terminate prematurely in some cases (i.e. core/test/data/blackbox/ean13-1/23.JPG). The calling function, MultiFormatOneDReader::doDecode, is only catching ReaderException's. An Exception would be passed all the way up to the caller, even if scanning hasn't finished yet for other decoders for other rows.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1493 59b500cc-1b3d-0410-9834-0bbf25fbcc57
- ported the HybridBinarizer from Java for improved 2D binarization
- updated BinaryBitmap to report if it supports cropping and rotation
- test binary updates to compare both binarizers like it used to
git-svn-id: https://zxing.googlecode.com/svn/trunk@1489 59b500cc-1b3d-0410-9834-0bbf25fbcc57
It takes a block of greyscale data, width, height, and cropping parameters, and provides a LuminanceSource interface, with rotation (although only 1D is supported for the rotated object at the moment.)
git-svn-id: https://zxing.googlecode.com/svn/trunk@1488 59b500cc-1b3d-0410-9834-0bbf25fbcc57
- BitArray.reverse() was inverting, not reversing, bits.
- OneDReader wasn't reversing x coordinates of the result points.
- OneDReader wasn't catching Binarizer exceptions properly.
Issue 470 can be closed by this.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1472 59b500cc-1b3d-0410-9834-0bbf25fbcc57
- Added experimental QR edge detector.
- Modified pattern finder tolerance levels, as in the Java code.
- Adjusted the local block binarizer slightly.
- Added a simple example application.
- Modified MagickBitmapSource to compute the luminance in the same way as the Java BufferedImageLuminanceSource.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1144 59b500cc-1b3d-0410-9834-0bbf25fbcc57
- Fixed to be able to build for the Symbian emulator (variable-sized arrays cannot be created on the stack).
- Fixed bug only present on Symbian phones that prevented the alignment patterns from being found (the Symbian implementation of valarray does not initialize its values to 0, unless it is explicitly specified as the default value).
- Fixed an include.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1100 59b500cc-1b3d-0410-9834-0bbf25fbcc57
- Refactoring:
- All the files are now in a zxing folder,
- Changed the namespaces so that everything is either in zxing or
zxing::qrcode.
- Moved most function implementations from the headers to source
files.
- Ported the new design from the Java code with LuminanceSource,
BinaryBitmap, Binarizer, GlobalHistogramBinarizer and
LocalBlockBinarizer.
- Fixed two rare segmentation faults: one in
GridSampler::checkAndNudgePoints, and one in
ReedSolomonDecoder::decode. These would simply cause
ArrayIndexOutOfBoundsExceptions in Java, but have to be checked
explicitly in C++.
- With help from Erno Mäkinen, used std::vector instead of ArrayRef in
many places, as ArrayRef causes problems on Symbian phones.
- Added scons build files.
- Added a test application using ImageMagick.
- More small changes.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1092 59b500cc-1b3d-0410-9834-0bbf25fbcc57
- replace |throw new FooException()| with |throw FooException()|
- replace |catch (FooException *ex)| with |catch (FooExceptio ex)|
- update all uses of caught exceptions appropriately:
. replace |ex->foo| with |ex.foo|
. remove all attempts to delete the caught exception(s)
* Add 'const' to the 'char *' declarations for character encoding names
git-svn-id: https://zxing.googlecode.com/svn/trunk@1002 59b500cc-1b3d-0410-9834-0bbf25fbcc57