diff --git a/image_read.cpp b/image_read.cpp index e60d6f86c6f55dd7518db4450f869e6c1ff63190..41c5a5eaf6d6057080325b6e1f57aabe7a36e636 100644 --- a/image_read.cpp +++ b/image_read.cpp @@ -62,6 +62,8 @@ unsigned char *FileRead::read_image(const char *new_image,int *width,int *height return NULL; } +const char *FileRead::image_types="All images (*.png *.jpg *.jpeg *.pnm *.pbm *.pgm *.ppm);;PNG images (*.png);;JPG images (*.jpg *.jpeg);;PBM images (*.pnm *.pbm *.pgm *.ppm);;All files (*)"; + unsigned char *FileRead::jpgRead(const char *texturePath, int *outImageWidth, int *outImageHeight){ diff --git a/image_read.h b/image_read.h index c1f89950f4035dcee45c3eb3b059c3b55aef0522..852a6965f36d6931be0fe3094c9efd07ffa8a31b 100644 --- a/image_read.h +++ b/image_read.h @@ -28,6 +28,7 @@ class FileRead{ static enum FileType get_file_type(const char*); protected: static unsigned char *read_image(const char*,int*,int*); + static const char *image_types; private: static unsigned char *jpgRead(const char*,int*,int*); static unsigned char *pngRead(const char*,int*,int*); diff --git a/openglcanvas.cpp b/openglcanvas.cpp index c705bc8475555f7af18416acfc0a2d4ef64ffb97..c3e8d249e24356e8868f8d4ea1dd72f9571cf5a3 100644 --- a/openglcanvas.cpp +++ b/openglcanvas.cpp @@ -279,8 +279,11 @@ void OpenGLCanvas::load_image(const char *new_image){ } void OpenGLCanvas::change_input_image(){ - load_image(QFileDialog::getOpenFileName(this,tr("Choose Panorama File")).toStdString().c_str()); - updateGL(); + const char *fname=QFileDialog::getOpenFileName(this,tr("Choose Panorama File"),"",FileRead::image_types).toStdString().c_str(); + if(strlen(fname)>0){ + load_image(fname); + updateGL(); + } } void OpenGLCanvas::initializeGL(){ @@ -305,7 +308,7 @@ void OpenGLCanvas::initializeGL(){ // If the input file does not exist or was not specified. struct stat testbuf; if(stat(input_image_file,&testbuf)||!strcmp(input_image_file,"")){ - load_image(QFileDialog::getOpenFileName(this,tr("Choose Panorama File")).toStdString().c_str()); + load_image(QFileDialog::getOpenFileName(this,tr("Choose Panorama File"),"",FileRead::image_types).toStdString().c_str()); }else{ load_image(input_image_file); }