From 0e52247373acad9572440624c41846efd3a573d1 Mon Sep 17 00:00:00 2001 From: Johannes Hofmann Date: Fri, 27 Oct 2006 22:18:48 +0200 Subject: add initial ImageMetaData classes --- src/EXIFImageMetaData.H | 46 ++++++++++++++++++++ src/ImageMetaData.H | 56 ++++++++++++++++++++++++ src/ImageMetaData.cxx | 110 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 212 insertions(+) create mode 100644 src/EXIFImageMetaData.H create mode 100644 src/ImageMetaData.H create mode 100644 src/ImageMetaData.cxx diff --git a/src/EXIFImageMetaData.H b/src/EXIFImageMetaData.H new file mode 100644 index 0000000..b959dd3 --- /dev/null +++ b/src/EXIFImageMetaData.H @@ -0,0 +1,46 @@ +// +// Copyright 2006 by Johannes Hofmann +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Library General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +// USA. +// + +#ifndef EXIF_IMAGE_META_DATA_H +#define EXIF_IMAGE_META_DATA_H + +class ExifImageMetaData { + ExifImageMetaData(); + + virtual int load_image(const char *name); + + virtual double get_longitude(); + virtual double get_latitude(); + virtual double get_height(); + virtual double get_direction(); + virtual double get_nick(); + virtual double get_tilt(); + virtual double get_focallength_sensor_ratio(); + virtual int get_projection_type(); + + virtual void set_longitude(double v); + virtual void set_latitude(double v); + virtual void set_height(double v); + virtual void set_direction(double v); + virtual void set_nick(double v); + virtual void set_tilt(double v); + virtual void set_focallength_sensor_ratio(double v); + virtual int set_projection_type(int v); +}; +#endif diff --git a/src/ImageMetaData.H b/src/ImageMetaData.H new file mode 100644 index 0000000..79495f4 --- /dev/null +++ b/src/ImageMetaData.H @@ -0,0 +1,56 @@ +// +// Copyright 2006 by Johannes Hofmann +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Library General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +// USA. +// + +#ifndef IMAGE_META_DATA_H +#define IMAGE_META_DATA_H + +class ImageMetaData { + protected: + double longitude; + double latitude; + double height; + double direction; + double nick; + double tilt; + double focallength_sensor_ratio; + int projection_type; + + public: + virtual int load_image(const char *name); + virtual int save_image(const char *name); + + double get_longitude(); + double get_latitude(); + double get_height(); + double get_direction(); + double get_nick(); + double get_tilt(); + double get_focallength_sensor_ratio(); + int get_projection_type(); + + void set_longitude(double v); + void set_latitude(double v); + void set_height(double v); + void set_direction(double v); + void set_nick(double v); + void set_tilt(double v); + void set_focallength_sensor_ratio(double v); + int set_projection_type(int v); +}; +#endif diff --git a/src/ImageMetaData.cxx b/src/ImageMetaData.cxx new file mode 100644 index 0000000..0c868bd --- /dev/null +++ b/src/ImageMetaData.cxx @@ -0,0 +1,110 @@ +// +// Copyright 2006 by Johannes Hofmann +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Library General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Library General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +// USA. +// + +#include +#include + +#include "ImageMetaData.H" + +ImageMetaData::ImageMetaData() { + longitude = NAN; + latitude = NAN; + height = NAN; + direction = NAN; + nick = NAN; + tilt = NAN; + focallength_sensor_ratio = NAN; + projection_type = -1; +} + + +double +ImageMetaData::get_longitude() { + return longitude; +} + +double +ImageMetaData::get_latitude() { + return latitude; +} + +double +ImageMetaData::get_height() { + return height; +} + +double +ImageMetaData::get_direction() { + return direction; +} + +double +ImageMetaData::get_nick() { + return nick; +} + +double +ImageMetaData::get_tilt() { + return tilt; +} + +double +ImageMetaData::get_focallength_sensor_ratio() { + return focallength_sensor_ratio; +} + + +void +ImageMetaData::set_longitude(double v) { + longitude = v; +} + +void +ImageMetaData::set_latitude(double v) { + latitude = v; +} + +void +ImageMetaData::set_height(double v) { + height = v; +} + +void +ImageMetaData::set_direction(double v) { + direction = v; +} + +void +ImageMetaData::set_nick(double v) { + nick = v; +} + +void +ImageMetaData::set_tilt(double v) { + tilt = v; +} + +void +ImageMetaData::set_focallength_sensor_ratio(double v) { + focallength_sensor_ratio = v; +} + +int ImageMetaData::set_projection_type(int v) { + projection_type = v; +} -- cgit v1.2.3