Removed the definition of basename, which confuses an existing system one.
[folded-ctf.git] / image.cc
1 /*
2  *  folded-ctf is an implementation of the folded hierarchy of
3  *  classifiers for object detection, developed by Francois Fleuret
4  *  and Donald Geman.
5  *
6  *  Copyright (c) 2008 Idiap Research Institute, http://www.idiap.ch/
7  *  Written by Francois Fleuret <francois.fleuret@idiap.ch>
8  *
9  *  This file is part of folded-ctf.
10  *
11  *  folded-ctf is free software: you can redistribute it and/or modify
12  *  it under the terms of the GNU General Public License version 3 as
13  *  published by the Free Software Foundation.
14  *
15  *  folded-ctf is distributed in the hope that it will be useful, but
16  *  WITHOUT ANY WARRANTY; without even the implied warranty of
17  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  *  General Public License for more details.
19  *
20  *  You should have received a copy of the GNU General Public License
21  *  along with folded-ctf.  If not, see <http://www.gnu.org/licenses/>.
22  *
23  */
24
25 #include "image.h"
26
27 Image::Image(int width, int height) {
28   _width = width;
29   _height = height;
30   _content = new unsigned char[_width * _height];
31 }
32
33 Image::Image() {
34   _width = 0;
35   _height = 0;
36   _content = 0;
37 }
38
39 Image::~Image() {
40   delete[] _content;
41 }
42
43 void Image::to_rgb(RGBImage *image) {
44   int c;
45   for(int y = 0; y < _height; y++) {
46     for(int x = 0; x < _width; x++) {
47       c = value(x, y);
48       image->set_pixel(x, y, c, c, c);
49     }
50   }
51 }
52
53 void Image::read(istream *in) {
54   delete[] _content;
55   read_var(in, &_width);
56   read_var(in, &_height);
57   _content = new unsigned char[_width * _height];
58   in->read((char *) _content, sizeof(unsigned char) * _width * _height);
59 }
60
61 void Image::write(ostream *out) {
62   write_var(out, &_width);
63   write_var(out, &_height);
64   out->write((char *) _content, sizeof(unsigned char) * _width * _height);
65 }