Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxbarcode / src / BC_BinaryBitmap.cpp
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #include "barcode.h"\r
8 #include "include/BC_Binarizer.h"\r
9 #include "include/BC_LuminanceSource.h"\r
10 #include "include/BC_CommonBitMatrix.h"\r
11 #include "include/BC_CommonBitArray.h"\r
12 #include "include/BC_BinaryBitmap.h"\r
13 CBC_BinaryBitmap::CBC_BinaryBitmap(CBC_Binarizer *binarizer): m_binarizer(binarizer), m_matrix(NULL)\r
14 {\r
15 }\r
16 CBC_BinaryBitmap::~CBC_BinaryBitmap()\r
17 {\r
18     if  (m_matrix != NULL) {\r
19         delete m_matrix;\r
20     }\r
21     m_matrix = NULL;\r
22 }\r
23 FX_INT32 CBC_BinaryBitmap::GetHeight()\r
24 {\r
25     return m_binarizer->GetLuminanceSource()->GetHeight();\r
26 }\r
27 FX_INT32 CBC_BinaryBitmap::GetWidth()\r
28 {\r
29     return m_binarizer->GetLuminanceSource()->GetWidth();\r
30 }\r
31 CBC_CommonBitMatrix *CBC_BinaryBitmap::GetMatrix(FX_INT32 &e)\r
32 {\r
33     if (m_matrix == NULL) {\r
34         m_matrix = m_binarizer->GetBlackMatrix(e);\r
35         BC_EXCEPTION_CHECK_ReturnValue(e, NULL);\r
36     }\r
37     return m_matrix;\r
38 }\r
39 FX_BOOL CBC_BinaryBitmap::IsCropSupported()\r
40 {\r
41     return m_binarizer->GetLuminanceSource()->IsCropSupported();\r
42 }\r
43 FX_BOOL CBC_BinaryBitmap::IsRotateSupported()\r
44 {\r
45     return m_binarizer->GetLuminanceSource()->IsRotateSupported();\r
46 }\r
47 CBC_CommonBitArray *CBC_BinaryBitmap::GetBlackRow(FX_INT32 y, CBC_CommonBitArray *row, FX_INT32 &e)\r
48 {\r
49     CBC_CommonBitArray *temp = m_binarizer->GetBlackRow(y, row, e);\r
50     BC_EXCEPTION_CHECK_ReturnValue(e, NULL);\r
51     return temp;\r
52 }\r
53 CBC_CommonBitMatrix *CBC_BinaryBitmap::GetBlackMatrix(FX_INT32 &e)\r
54 {\r
55     if (m_matrix == NULL) {\r
56         m_matrix = m_binarizer->GetBlackMatrix(e);\r
57         BC_EXCEPTION_CHECK_ReturnValue(e, NULL);\r
58     }\r
59     return m_matrix;\r
60 }\r