/*----------------------------------------------------- Parameters: Returns value: Description ------------------------------------------------------*/ IMAGE * ImageRead(const char*fname) { IMAGE *I = NULL ; MATRIX *mat ; FILE *fp ; int type, frame ; char buf[STRLEN] ; strcpy(buf, fname) ; /* don't destroy callers string */ ImageUnpackFileName(buf, &frame, &type, buf) ; switch (type) { case TIFF_IMAGE: I = TiffReadImage(buf, frame) ; if (I == NULL) return(NULL) ; break ; case MATLAB_IMAGE: DiagPrintf(DIAG_WRITE, "ImageRead: buf=%s, frame=%d, type=%d (M=%d,H=%d)\n", buf, frame, type , MATLAB_IMAGE, HIPS_IMAGE); mat = MatlabRead(buf) ; if (!mat) ErrorReturn(NULL, (ERROR_NO_FILE, "ImageRead(%s) failed\n", buf)) ; I = ImageFromMatrix(mat, NULL) ; ImageInvert(I, I) ; MatrixFree(&mat) ; break ; case HIPS_IMAGE: fp = fopen(buf, "rb") ; if (!fp) ErrorReturn(NULL, (ERROR_NO_FILE, "ImageRead(%s, %d) failed\n", buf, frame)) ; I = ImageFRead(fp, buf, frame, 1) ; fclose(fp) ; break ; case JPEG_IMAGE: I = JPEGReadImage(buf); break ; case PGM_IMAGE: I = PGMReadImage(buf); break; case PPM_IMAGE: I = PPMReadImage(buf); break; case PBM_IMAGE: I = PBMReadImage(buf); break; case RGBI_IMAGE: I= RGBReadImage(buf); default: break ; } return(I) ; }
int Image32::ReadImage(char* fileName) { char* ext=GetFileExtension(fileName); int ret=0; if(!strcasecmp(ext,"bmp")) { ret=BMPReadImage(fileName,*this); } else if(!strcasecmp(ext,"jpg") || !strcasecmp(ext,"jpeg")) { ret=JPEGReadImage(fileName,*this); } else {}; // Unknown format delete[] ext; return ret; }