import com.google.zxing.qrcode.decoder.Decoder;
import com.google.zxing.qrcode.detector.Detector;
-import org.hedgecode.chess.ChessQRCodeConstants;
-
/**
* Chess-specific QR Codes reader (image decoder).
*
private static ChessQRCodeReader _instance = new ChessQRCodeReader();
- private ChessQRCodeReader() {
+ protected ChessQRCodeReader() {
decoder = new Decoder();
}
);
}
- ChessQRCodeMode mode = ChessQRCodeMode.byCode(
- decoderResult.getText().substring(0, ChessQRCodeMode.CODE_LENGTH)
- );
-
- if (mode == null) {
- throw new ChessQRCodeException(
- ChessQRCodeException.Type.READ, "read.unknown.chess.mode"
- );
- }
-
- return new ChessQRResult(
- mode,
- decoderResult.getText().substring(ChessQRCodeMode.CODE_LENGTH)
- );
+ return createResult(decoderResult);
/*
ResultPoint[] points = detectorResult.getPoints();
*/
}
+ protected ChessQRResult createResult(DecoderResult decoderResult) throws ChessQRCodeException {
+ String result = decoderResult.getText();
+
+ ChessQRCodeMode mode = ChessQRResult.getMode(result);
+ if (mode == null) {
+ throw new ChessQRCodeException(
+ ChessQRCodeException.Type.READ, "read.unknown.chess.mode"
+ );
+ }
+
+ return new ChessQRResult(
+ mode,
+ ChessQRResult.getContents(result)
+ );
+ }
+
public static ChessQRCodeReader getInstance() {
return _instance;
}
public static void main(String[] args) {
try {
ChessQRResult qrCodeResult = ChessQRCodeReader.getInstance().read(
- new File("MyQRCode.png")
+ new File("qrcode.png")
);
System.out.println("Decoded format = " + qrCodeResult.getMode());
System.out.println("Decoded text = " + qrCodeResult.getContents());