/* * Copyright 2007 ZXing authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // package com::google::zxing::datamatrix::decoder; /** *
The main class which implements Data Matrix Code decoding -- as opposed to locating and extracting * the Data Matrix Code from an image.
* * @author bbrown@google.com (Brian Brown) */ pub struct Decoder { let rs_decoder: ReedSolomonDecoder; } impl Decoder { pub fn new() -> Decoder { rs_decoder = ReedSolomonDecoder::new(GenericGF::DATA_MATRIX_FIELD_256); } /** *Convenience method that can decode a Data Matrix Code represented as a 2D array of booleans. * "true" is taken to mean a black module.
* * @param image booleans representing white/black Data Matrix Code modules * @return text and bytes encoded within the Data Matrix Code * @throws FormatException if the Data Matrix Code cannot be decoded * @throws ChecksumException if error correction fails */ pub fn decode(&self, image: &VecDecodes a Data Matrix Code represented as a {@link BitMatrix}. A 1 or "true" is taken * to mean a black module.
* * @param bits booleans representing white/black Data Matrix Code modules * @return text and bytes encoded within the Data Matrix Code * @throws FormatException if the Data Matrix Code cannot be decoded * @throws ChecksumException if error correction fails */ pub fn decode(&self, bits: &BitMatrix) -> /* throws FormatException, ChecksumException */ResultGiven data and error-correction codewords received, possibly corrupted by errors, attempts to * correct the errors in-place using Reed-Solomon error correction.
* * @param codewordBytes data and error correction codewords * @param numDataCodewords number of codewords that are data bytes * @throws ChecksumException if error correction fails */ fn correct_errors(&self, codeword_bytes: &Vec