Updates to C++ port:
[zxing.git] / cpp / magick / src / MagickBitmapSource.h
1 /*
2  *  MagickBitmapSource.h
3  *  zxing
4  *
5  *  Created by Ralf Kistner on 16/10/2009.
6  *  Copyright 2008 ZXing authors All rights reserved.
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 #ifndef MAGICKMONOCHROMEBITMAPSOURCE_H_
22 #define MAGICKMONOCHROMEBITMAPSOURCE_H_
23
24 #include <Magick++.h>
25 #include <zxing/LuminanceSource.h>
26
27 namespace zxing {
28
29 class MagickBitmapSource : public LuminanceSource {
30 private:
31   Magick::Image& image_;
32   int width;
33   int height;
34   const Magick::PixelPacket* pixel_cache;
35
36 public:
37   MagickBitmapSource(Magick::Image& image);
38
39   ~MagickBitmapSource();
40
41   int getWidth() const;
42   int getHeight() const;
43   unsigned char* getRow(int y, unsigned char* row);
44   unsigned char* getMatrix();
45 };
46
47 }
48
49 #endif /* MAGICKMONOCHROMEBITMAPSOURCE_H_ */