* BinaryBitmap.cpp
* zxing
*
- * Created by Ralf Kistner on 19/10/2009.
- * Copyright 2008 ZXing authors All rights reserved.
- * Modified by Lukasz Warchol on 02/02/2010.
+ * Copyright 2010 ZXing authors All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
namespace zxing {
- BinaryBitmap::BinaryBitmap(Ref<Binarizer> binarizer) : bits_(NULL), array_bits_(NULL), binarizer_(binarizer) {
+ BinaryBitmap::BinaryBitmap(Ref<Binarizer> binarizer) : binarizer_(binarizer) {
}
}
Ref<BitArray> BinaryBitmap::getBlackRow(int y, Ref<BitArray> row) {
- if (array_bits_ == NULL) {
- array_bits_ = binarizer_->getBlackRow(y, row);
- }
- return array_bits_;
+ return binarizer_->getBlackRow(y, row);
}
Ref<BitMatrix> BinaryBitmap::getBlackMatrix() {
- if (bits_ == NULL) {
- bits_ = binarizer_->getBlackMatrix();
- }
- return bits_;
+ return binarizer_->getBlackMatrix();
}
- int BinaryBitmap::getWidth() {
- return getSource()->getWidth();
+
+ int BinaryBitmap::getWidth() const {
+ return getLuminanceSource()->getWidth();
}
- int BinaryBitmap::getHeight() {
- return getSource()->getHeight();
+
+ int BinaryBitmap::getHeight() const {
+ return getLuminanceSource()->getHeight();
}
- Ref<LuminanceSource> BinaryBitmap::getSource() {
- return binarizer_->getSource();
+ Ref<LuminanceSource> BinaryBitmap::getLuminanceSource() const {
+ return binarizer_->getLuminanceSource();
}
+
+ bool BinaryBitmap::isCropSupported() const {
+ return getLuminanceSource()->isCropSupported();
+ }
+
+ Ref<BinaryBitmap> BinaryBitmap::crop(int left, int top, int width, int height) {
+ return Ref<BinaryBitmap> (new BinaryBitmap(binarizer_->createBinarizer(getLuminanceSource()->crop(left, top, width, height))));
+ }
+
+ bool BinaryBitmap::isRotateSupported() const {
+ return getLuminanceSource()->isRotateSupported();
+ }
+
+ Ref<BinaryBitmap> BinaryBitmap::rotateCounterClockwise() {
+ return Ref<BinaryBitmap> (new BinaryBitmap(binarizer_->createBinarizer(getLuminanceSource()->rotateCounterClockwise())));
+ }
}