00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <ImageMagicKSource.h>
00023 #include <im_magick.h>
00024
00025 ImageMagicKSource::ImageMagicKSource(char *filename, char* prog_path)
00029 {
00030 if((img=im_load(filename, width, height, prog_path))==NULL) ok = false ;
00031 else ok = true ;
00032 }
00033
00034 ImageMagicKSource::ImageMagicKSource(char *filename)
00038 {
00039 if((img=im_load(filename, width, height, NULL))==NULL) ok = false ;
00040 else ok = true ;
00041 }
00042
00043 ImageMagicKSource::~ImageMagicKSource()
00047 {
00048 im_free(img) ;
00049 }
00050
00051 ImageSource& ImageMagicKSource::operator>> (ImageRGB &image)
00055 {
00056 im_get_data(img, (int*)image.data) ;
00057
00058 return *this ;
00059 }
00060
00061 void ImageMagicKSource::get_size(unsigned int &w, unsigned int &h)
00065 {
00066 w = width ;
00067 h = height ;
00068 }
00069
00070 ImageSource& ImageMagicKSource::operator>> (ImageGrey &image)
00074 {
00075 im_get_data_grey(img, image.brightness) ;
00076 return *this ;
00077 }
00078
00079 ImageSource& ImageMagicKSource::operator>> (Image &image)
00083 {
00084 (type == Image::COLOUR) ? *this >> (ImageRGB&)image
00085 : *this >> (ImageGrey&)image;
00086 return *this ;
00087 }
00088
00089