void FileParser::GetGPSData() { fipTag tag; fipTag tag2; fipImage src; QString file; const char* value; const char* thumbnail_tag = "thumbnail_"; char value2 = '\n'; int amount = this->FileAmount(); int index = 0; ImageData* image; while (index < amount) { file = this->GetFileByIndex(index); src.load(file.toStdString().c_str()); image = new ImageData(); image->AddFileName(file); if(src.getMetadata(FIMD_EXIF_GPS,"GPSLatitude",tag) && src.getMetadata(FIMD_EXIF_GPS,"GPSLatitudeRef",tag2)) { value2 = *(tag2.toString(FIMD_EXIF_GPS)); value = tag.toString(FIMD_EXIF_GPS); image->AddGoordinate(false,value,value2); } if(src.getMetadata(FIMD_EXIF_GPS,"GPSLongitude",tag) && src.getMetadata(FIMD_EXIF_GPS,"GPSLongitudeRef",tag2)) { value2 = *(tag2.toString(FIMD_EXIF_GPS)); value = tag.toString(FIMD_EXIF_GPS); image->AddGoordinate(true,value,value2); } if(src.getMetadata(FIMD_EXIF_GPS,"GPSAltitude",tag)) { value = tag.toString(FIMD_EXIF_GPS); image->AddAlttitude(value); } if(src.getMetadata(FIMD_EXIF_EXIF,"DateTimeOriginal",tag)) { value = tag.toString(FIMD_EXIF_EXIF); image->time_stamp = new QString(value); } /* Make Thumbnail from original image and store it to execution folder using PNG Format */ /* TODO: Investigate why icon data is not show in map if (src.makeThumbnail(50)) { int size = strlen(thumbnail_tag); char* filename = new char[(size + image->file_name->length() + 1)]; strcpy(filename,thumbnail_tag); strcpy((filename+size),image->file_name->toStdString().c_str()); size = (strlen(filename) - 4); strcpy((filename+size),".png"); if (FreeImage_Save(FIF_PNG, src, filename, 0)) image->thumbnail_path = new QString(filename); delete[] filename; }*/ ImageTable << image; emit FileDone(index); index++; } thread->quit(); }