Home | History | Annotate | Download | only in fxbarcode
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 // Original code is licensed as follows:
      7 /*
      8  * Copyright 2009 ZXing authors
      9  *
     10  * Licensed under the Apache License, Version 2.0 (the "License");
     11  * you may not use this file except in compliance with the License.
     12  * You may obtain a copy of the License at
     13  *
     14  *      http://www.apache.org/licenses/LICENSE-2.0
     15  *
     16  * Unless required by applicable law or agreed to in writing, software
     17  * distributed under the License is distributed on an "AS IS" BASIS,
     18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     19  * See the License for the specific language governing permissions and
     20  * limitations under the License.
     21  */
     22 
     23 #include "xfa/src/fxbarcode/barcode.h"
     24 #include "xfa/src/fxbarcode/BC_Binarizer.h"
     25 #include "xfa/src/fxbarcode/BC_LuminanceSource.h"
     26 #include "xfa/src/fxbarcode/BC_BinaryBitmap.h"
     27 #include "xfa/src/fxbarcode/common/BC_CommonBitMatrix.h"
     28 #include "xfa/src/fxbarcode/common/BC_CommonBitArray.h"
     29 CBC_BinaryBitmap::CBC_BinaryBitmap(CBC_Binarizer* binarizer)
     30     : m_binarizer(binarizer), m_matrix(NULL) {}
     31 CBC_BinaryBitmap::~CBC_BinaryBitmap() {
     32   if (m_matrix != NULL) {
     33     delete m_matrix;
     34   }
     35   m_matrix = NULL;
     36 }
     37 int32_t CBC_BinaryBitmap::GetHeight() {
     38   return m_binarizer->GetLuminanceSource()->GetHeight();
     39 }
     40 int32_t CBC_BinaryBitmap::GetWidth() {
     41   return m_binarizer->GetLuminanceSource()->GetWidth();
     42 }
     43 CBC_CommonBitMatrix* CBC_BinaryBitmap::GetMatrix(int32_t& e) {
     44   if (m_matrix == NULL) {
     45     m_matrix = m_binarizer->GetBlackMatrix(e);
     46     BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
     47   }
     48   return m_matrix;
     49 }
     50 CBC_CommonBitArray* CBC_BinaryBitmap::GetBlackRow(int32_t y,
     51                                                   CBC_CommonBitArray* row,
     52                                                   int32_t& e) {
     53   CBC_CommonBitArray* temp = m_binarizer->GetBlackRow(y, row, e);
     54   BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
     55   return temp;
     56 }
     57 CBC_CommonBitMatrix* CBC_BinaryBitmap::GetBlackMatrix(int32_t& e) {
     58   if (m_matrix == NULL) {
     59     m_matrix = m_binarizer->GetBlackMatrix(e);
     60     BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
     61   }
     62   return m_matrix;
     63 }
     64