UPCAReader.cpp Example File
appdemos/qtws/QZXing/zxing/zxing/oned/UPCAReader.cpp
#include "UPCAReader.h"
#include <zxing/ReaderException.h>
using zxing::oned::UPCAReader;
using zxing::Ref;
using zxing::Result;
using zxing::BitArray;
using zxing::BinaryBitmap;
using zxing::DecodeHints;
UPCAReader::UPCAReader() : ean13Reader() {}
Ref<Result> UPCAReader::decodeRow(int rowNumber, Ref<BitArray> row, zxing::DecodeHints hints) {
return maybeReturnResult(ean13Reader.decodeRow(rowNumber, row, hints));
}
Ref<Result> UPCAReader::decodeRow(int rowNumber,
Ref<BitArray> row,
Range const& startGuardRange) {
return maybeReturnResult(ean13Reader.decodeRow(rowNumber, row, startGuardRange));
}
Ref<Result> UPCAReader::decode(Ref<BinaryBitmap> image, DecodeHints hints) {
return maybeReturnResult(ean13Reader.decode(image, hints));
}
int UPCAReader::decodeMiddle(Ref<BitArray> row,
Range const& startRange,
std::string& resultString) {
return ean13Reader.decodeMiddle(row, startRange, resultString);
}
Ref<Result> UPCAReader::maybeReturnResult(Ref<Result> result) {
if (result.empty()) {
return result;
}
const std::string& text = (result->getText())->getText();
if (text[0] == '0') {
Ref<String> resultString(new String(text.substr(1)));
Ref<Result> res(new Result(resultString, result->getRawBytes(), result->getResultPoints(),
BarcodeFormat::UPC_A));
return res;
}
return Ref<Result>();
}
zxing::BarcodeFormat UPCAReader::getBarcodeFormat(){
return BarcodeFormat::UPC_A;
}