public final class RSSExpandedReader extends AbstractRSSReader
Modifier and Type | Field and Description |
---|---|
private static float |
DATA_CHARACTER_MODULES |
private static int[] |
EVEN_TOTAL_SUBSET |
private static int |
FINDER_PAT_A |
private static int |
FINDER_PAT_B |
private static int |
FINDER_PAT_C |
private static int |
FINDER_PAT_D |
private static int |
FINDER_PAT_E |
private static int |
FINDER_PAT_F |
private static float |
FINDER_PATTERN_MODULES |
private static int[][] |
FINDER_PATTERN_SEQUENCES
The possible finder pattern sequences, from section 7.2.7 of ISO/IEC 24724:2006.
|
private static int[][] |
FINDER_PATTERNS
Finder pattern element widths, from section 7.2.7 of ISO/IEC 24724:2006.
|
private static int[] |
GSUM |
private static float |
MAX_FINDER_PATTERN_DISTANCE_VARIANCE |
private static int |
MAX_PAIRS |
private java.util.List<ExpandedPair> |
pairs |
private java.util.List<ExpandedRow> |
rows |
private int[] |
startEnd |
private boolean |
startFromEven |
private static int[] |
SYMBOL_WIDEST |
private static int[][] |
WEIGHTS
The element weights used in the checksum calculation, from section 7.2.6 of ISO/IEC 24724:2006.
|
Constructor and Description |
---|
RSSExpandedReader() |
Modifier and Type | Method and Description |
---|---|
private void |
adjustOddEvenCounts(int numModules) |
private boolean |
checkChecksum() |
private java.util.List<ExpandedPair> |
checkRows(boolean reverse) |
private java.util.List<ExpandedPair> |
checkRows(java.util.List<ExpandedRow> collectedRows,
int currentRow) |
(package private) static Result |
constructResult(java.util.List<ExpandedPair> pairs) |
(package private) DataCharacter |
decodeDataCharacter(BitArray row,
FinderPattern pattern,
boolean isOddPattern,
boolean leftChar) |
Result |
decodeRow(int rowNumber,
BitArray row,
java.util.Map<DecodeHintType,?> hints)
Attempts to decode a one-dimensional barcode format given a single row of
an image.
|
(package private) java.util.List<ExpandedPair> |
decodeRow2pairs(int rowNumber,
BitArray row) |
private void |
findNextPair(BitArray row,
java.util.List<ExpandedPair> previousPairs,
int forcedOffset) |
private static int |
getNextSecondBar(BitArray row,
int initialPos) |
(package private) java.util.List<ExpandedRow> |
getRows() |
private static boolean |
isNotA1left(FinderPattern pattern,
boolean isOddPattern,
boolean leftChar) |
private static boolean |
isPartialRow(java.lang.Iterable<ExpandedPair> pairs,
java.lang.Iterable<ExpandedRow> rows) |
private static boolean |
isValidSequence(java.util.List<ExpandedPair> pairs,
boolean complete) |
private static boolean |
mayFollow(java.util.List<ExpandedPair> pairs,
int value) |
private FinderPattern |
parseFoundFinderPattern(BitArray row,
int rowNumber,
boolean oddPattern,
java.util.List<ExpandedPair> previousPairs) |
private static void |
removePartialRows(java.util.Collection<ExpandedPair> pairs,
java.util.Collection<ExpandedRow> rows) |
void |
reset()
Resets any internal state the implementation has after a decode, to prepare it
for reuse.
|
(package private) ExpandedPair |
retrieveNextPair(BitArray row,
java.util.List<ExpandedPair> previousPairs,
int rowNumber) |
private static void |
reverseCounters(int[] counters) |
private void |
storeRow(int rowNumber) |
count, decrement, getDataCharacterCounters, getDecodeFinderCounters, getEvenCounts, getEvenRoundingErrors, getOddCounts, getOddRoundingErrors, increment, isFinderPattern, parseFinderValue
decode, decode, patternMatchVariance, recordPattern, recordPatternInReverse
private static final int[] SYMBOL_WIDEST
private static final int[] EVEN_TOTAL_SUBSET
private static final int[] GSUM
private static final int[][] FINDER_PATTERNS
private static final int[][] WEIGHTS
private static final int FINDER_PAT_A
private static final int FINDER_PAT_B
private static final int FINDER_PAT_C
private static final int FINDER_PAT_D
private static final int FINDER_PAT_E
private static final int FINDER_PAT_F
private static final int[][] FINDER_PATTERN_SEQUENCES
private static final int MAX_PAIRS
private static final float FINDER_PATTERN_MODULES
private static final float DATA_CHARACTER_MODULES
private static final float MAX_FINDER_PATTERN_DISTANCE_VARIANCE
private final java.util.List<ExpandedPair> pairs
private final java.util.List<ExpandedRow> rows
private final int[] startEnd
private boolean startFromEven
public Result decodeRow(int rowNumber, BitArray row, java.util.Map<DecodeHintType,?> hints) throws NotFoundException, FormatException
OneDReader
Attempts to decode a one-dimensional barcode format given a single row of an image.
decodeRow
in class OneDReader
rowNumber
- row number from top of the rowrow
- the black/white pixel data of the rowhints
- decode hintsResult
containing encoded string and start/end of barcodeNotFoundException
- if no potential barcode is foundFormatException
- if a potential barcode is found but format is invalidpublic void reset()
Reader
reset
in interface Reader
reset
in class OneDReader
java.util.List<ExpandedPair> decodeRow2pairs(int rowNumber, BitArray row) throws NotFoundException
NotFoundException
private java.util.List<ExpandedPair> checkRows(boolean reverse)
private java.util.List<ExpandedPair> checkRows(java.util.List<ExpandedRow> collectedRows, int currentRow) throws NotFoundException
NotFoundException
private static boolean isValidSequence(java.util.List<ExpandedPair> pairs, boolean complete)
private static boolean mayFollow(java.util.List<ExpandedPair> pairs, int value)
private void storeRow(int rowNumber)
private static void removePartialRows(java.util.Collection<ExpandedPair> pairs, java.util.Collection<ExpandedRow> rows)
private static boolean isPartialRow(java.lang.Iterable<ExpandedPair> pairs, java.lang.Iterable<ExpandedRow> rows)
java.util.List<ExpandedRow> getRows()
static Result constructResult(java.util.List<ExpandedPair> pairs) throws NotFoundException, FormatException
NotFoundException
FormatException
private boolean checkChecksum()
private static int getNextSecondBar(BitArray row, int initialPos)
ExpandedPair retrieveNextPair(BitArray row, java.util.List<ExpandedPair> previousPairs, int rowNumber) throws NotFoundException
NotFoundException
private void findNextPair(BitArray row, java.util.List<ExpandedPair> previousPairs, int forcedOffset) throws NotFoundException
NotFoundException
private static void reverseCounters(int[] counters)
private FinderPattern parseFoundFinderPattern(BitArray row, int rowNumber, boolean oddPattern, java.util.List<ExpandedPair> previousPairs)
DataCharacter decodeDataCharacter(BitArray row, FinderPattern pattern, boolean isOddPattern, boolean leftChar) throws NotFoundException
NotFoundException
private static boolean isNotA1left(FinderPattern pattern, boolean isOddPattern, boolean leftChar)
private void adjustOddEvenCounts(int numModules) throws NotFoundException
NotFoundException