eleni@0: #include eleni@0: eleni@0: #include "image.h" eleni@0: eleni@0: Image::Image() eleni@0: { eleni@0: pixels = 0; eleni@0: width = 0; eleni@0: height = 0; eleni@0: } eleni@0: eleni@0: Image::~Image() eleni@0: { eleni@0: delete [] pixels; eleni@0: } eleni@0: eleni@0: bool Image::load(const char *fname) eleni@0: { eleni@0: int new_width, new_height; eleni@0: float *new_pixels = (float*)img_load_pixels(fname, &new_width, &new_height, IMG_FMT_GREYF); eleni@0: eleni@0: if(!new_pixels) { eleni@0: fprintf(stderr, "Failed to load image: %s\n", fname); eleni@0: return false; eleni@0: } eleni@0: eleni@0: set_pixels(new_pixels, new_width, new_height); eleni@0: img_free_pixels(new_pixels); eleni@0: return true; eleni@0: } eleni@0: eleni@0: float *Image::get_pixels() eleni@0: { eleni@0: return pixels; eleni@0: } eleni@0: eleni@0: const float *Image::get_pixels() const eleni@0: { eleni@0: return pixels; eleni@0: } eleni@0: eleni@0: void Image::set_pixels(const float *pixels, int width, int height) eleni@0: { eleni@0: if(!pixels) eleni@0: return; eleni@0: eleni@0: delete [] this->pixels; eleni@0: eleni@0: this->pixels = new float[width * height]; eleni@0: for(int i=0; ipixels[i] = pixels[i]; eleni@0: } eleni@0: this->width = width; eleni@0: this->height = height; eleni@0: } eleni@0: eleni@0: int Image::get_width() const eleni@0: { eleni@0: return width; eleni@0: } eleni@0: eleni@0: int Image::get_height() const eleni@0: { eleni@0: return height; eleni@0: }