mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-06-27 03:29:16 +02:00
Optimized file access
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
#include <QDataStream>
|
||||
#include <QFileInfo>
|
||||
#include <QImageReader>
|
||||
#include "common/tifffile.h"
|
||||
#include "exifparser.h"
|
||||
|
||||
@ -200,9 +201,12 @@ bool EXIFParser::parseTIFF(QFile *file, QVector<Waypoint> &waypoints)
|
||||
return false;
|
||||
}
|
||||
|
||||
file->reset();
|
||||
ImageInfo img(file->fileName(), QImageReader(file).size());
|
||||
|
||||
Waypoint wp(c);
|
||||
wp.setName(QFileInfo(file->fileName()).baseName());
|
||||
wp.setImage(file->fileName());
|
||||
wp.setImage(img);
|
||||
wp.setElevation(altitude(tiff, GPSIFD.value(GPSAltitude),
|
||||
GPSIFD.value(GPSAltitudeRef)));
|
||||
wp.setTimestamp(QDateTime(QDate::fromString(text(tiff,
|
||||
|
24
src/data/imageinfo.h
Normal file
24
src/data/imageinfo.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef IMAGEINFO_H
|
||||
#define IMAGEINFO_H
|
||||
|
||||
#include <QString>
|
||||
#include <QSize>
|
||||
|
||||
class ImageInfo
|
||||
{
|
||||
public:
|
||||
ImageInfo() {}
|
||||
ImageInfo(const QString &path, const QSize &size)
|
||||
: _path(path), _size(size) {}
|
||||
|
||||
const QString &path() const {return _path;}
|
||||
const QSize &size() const {return _size;}
|
||||
|
||||
bool isValid() const {return _size.isValid() && !_path.isEmpty();}
|
||||
|
||||
private:
|
||||
QString _path;
|
||||
QSize _size;
|
||||
};
|
||||
|
||||
#endif // IMAGEINFO_H
|
@ -6,6 +6,7 @@
|
||||
#include <QHash>
|
||||
#include <QDebug>
|
||||
#include "common/coordinates.h"
|
||||
#include "imageinfo.h"
|
||||
|
||||
class Waypoint
|
||||
{
|
||||
@ -17,7 +18,7 @@ public:
|
||||
const Coordinates &coordinates() const {return _coordinates;}
|
||||
const QString &name() const {return _name;}
|
||||
const QString &description() const {return _description;}
|
||||
const QString &image() const {return _image;}
|
||||
const ImageInfo &image() const {return _image;}
|
||||
const QDateTime ×tamp() const {return _timestamp;}
|
||||
qreal elevation() const {return _elevation;}
|
||||
|
||||
@ -28,7 +29,7 @@ public:
|
||||
{_description = description;}
|
||||
void setTimestamp(const QDateTime ×tamp) {_timestamp = timestamp;}
|
||||
void setElevation(qreal elevation) {_elevation = elevation;}
|
||||
void setImage(const QString &image) {_image = image;}
|
||||
void setImage(const ImageInfo &image) {_image = image;}
|
||||
|
||||
bool hasElevation() const {return !std::isnan(_elevation);}
|
||||
|
||||
@ -40,7 +41,7 @@ private:
|
||||
Coordinates _coordinates;
|
||||
QString _name;
|
||||
QString _description;
|
||||
QString _image;
|
||||
ImageInfo _image;
|
||||
QDateTime _timestamp;
|
||||
qreal _elevation;
|
||||
};
|
||||
|
Reference in New Issue
Block a user