mirror of
https://github.com/zxing/zxing.git
synced 2024-11-10 04:54:04 -08:00
Turned on ITF as a format you can request via hint. Also rejiggered the unit test framework to accept an optional hint so that the ITF unit test runs (and passes) without modifying the source.
git-svn-id: https://zxing.googlecode.com/svn/trunk@803 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
0a3ddd33dc
commit
96b80c3550
|
@ -49,16 +49,15 @@ public final class MultiFormatOneDReader extends AbstractOneDReader {
|
|||
if (possibleFormats.contains(BarcodeFormat.CODE_128)) {
|
||||
readers.addElement(new Code128Reader());
|
||||
}
|
||||
// TODO: Add ITFReader once it is validated as production ready.
|
||||
//if (possibleFormats.contains(BarcodeFormat.ITF)) {
|
||||
// readers.addElement(new ITFReader());
|
||||
//}
|
||||
if (possibleFormats.contains(BarcodeFormat.ITF)) {
|
||||
readers.addElement(new ITFReader());
|
||||
}
|
||||
}
|
||||
if (readers.isEmpty()) {
|
||||
readers.addElement(new MultiFormatUPCEANReader(hints));
|
||||
readers.addElement(new Code39Reader());
|
||||
readers.addElement(new Code128Reader());
|
||||
// TODO: Add ITFReader once it is validated as production ready.
|
||||
// TODO: Add ITFReader once it is validated as production ready, and tested for performance.
|
||||
//readers.addElement(new ITFReader());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,6 +115,10 @@ public abstract class AbstractBlackBoxTestCase extends TestCase {
|
|||
return barcodeReader;
|
||||
}
|
||||
|
||||
protected Hashtable<DecodeHintType, Object> getHints() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void testBlackBox() throws IOException {
|
||||
assertFalse(testResults.isEmpty());
|
||||
|
||||
|
@ -172,7 +176,15 @@ public abstract class AbstractBlackBoxTestCase extends TestCase {
|
|||
String suffix = " (" + (tryHarder ? "try harder, " : "") + "rotation: " + rotation + ')';
|
||||
|
||||
try {
|
||||
result = barcodeReader.decode(source, tryHarder ? TRY_HARDER_HINT : null);
|
||||
Hashtable<DecodeHintType, Object> hints = getHints();
|
||||
if (tryHarder) {
|
||||
if (hints == null) {
|
||||
hints = TRY_HARDER_HINT;
|
||||
} else {
|
||||
hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
result = getReader().decode(source, hints);
|
||||
} catch (ReaderException re) {
|
||||
System.out.println(re + suffix);
|
||||
return false;
|
||||
|
|
|
@ -16,11 +16,14 @@
|
|||
|
||||
package com.google.zxing.oned;
|
||||
|
||||
import com.google.zxing.MultiFormatReader;
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
import com.google.zxing.DecodeHintType;
|
||||
import com.google.zxing.MultiFormatReader;
|
||||
import com.google.zxing.common.AbstractBlackBoxTestCase;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Vector;
|
||||
|
||||
/**
|
||||
* @author kevin.osullivan@sita.aero
|
||||
|
@ -32,4 +35,25 @@ public final class ITFBlackBox1TestCase extends AbstractBlackBoxTestCase {
|
|||
addTest(9, 12, 0.0f);
|
||||
}
|
||||
|
||||
}
|
||||
// TODO(dswitkin): This is only used for the mean time because ITF is not turned on by default.
|
||||
// The other formats are included here to make sure we don't recognize an ITF barcode as something
|
||||
// else. Unfortunately this list is fragile. The right thing to do is profile ITF for performance,
|
||||
// and if it doesn't impose significant overhead, turn it on by default. Then this method can be
|
||||
// removed completely.
|
||||
@Override
|
||||
protected Hashtable<DecodeHintType, Object> getHints() {
|
||||
Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>(3);
|
||||
Vector<BarcodeFormat> vector = new Vector<BarcodeFormat>();
|
||||
vector.addElement(BarcodeFormat.UPC_A);
|
||||
vector.addElement(BarcodeFormat.UPC_E);
|
||||
vector.addElement(BarcodeFormat.EAN_13);
|
||||
vector.addElement(BarcodeFormat.EAN_8);
|
||||
vector.addElement(BarcodeFormat.CODE_39);
|
||||
vector.addElement(BarcodeFormat.CODE_128);
|
||||
vector.addElement(BarcodeFormat.ITF);
|
||||
vector.addElement(BarcodeFormat.QR_CODE);
|
||||
hints.put(DecodeHintType.POSSIBLE_FORMATS, vector);
|
||||
return hints;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue