diff options
Diffstat (limited to 'src/exiv2wrapper.cpp')
-rw-r--r-- | src/exiv2wrapper.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/exiv2wrapper.cpp b/src/exiv2wrapper.cpp index 4004f20..293bb0b 100644 --- a/src/exiv2wrapper.cpp +++ b/src/exiv2wrapper.cpp @@ -230,7 +230,7 @@ const ExifTag Image::getExifTag(std::string key) throw Exiv2::Error(KEY_NOT_FOUND, key); } - return ExifTag(key, &(*_exifData)[key], _exifData); + return ExifTag(key, &(*_exifData)[key], _exifData, _image->byteOrder()); } void Image::deleteExifTag(std::string key) @@ -450,6 +450,12 @@ std::string Image::getDataBuffer() const return buffer; } +Exiv2::ByteOrder Image::getByteOrder() const +{ + CHECK_METADATA_READ + return _image->byteOrder(); +} + Exiv2::ExifThumb* Image::_getExifThumbnail() { CHECK_METADATA_READ @@ -510,7 +516,10 @@ void Image::setExifThumbnailFromData(const std::string& data) } -ExifTag::ExifTag(const std::string& key, Exiv2::Exifdatum* datum, Exiv2::ExifData* data): _key(key) +ExifTag::ExifTag(const std::string& key, + Exiv2::Exifdatum* datum, Exiv2::ExifData* data, + Exiv2::ByteOrder byteOrder): + _key(key), _byteOrder(byteOrder) { if (datum != 0 && data != 0) { @@ -580,6 +589,8 @@ void ExifTag::setParentImage(Image& image) delete _datum; _datum = &(*_data)[_key.key()]; _datum->setValue(value); + + _byteOrder = image.getByteOrder(); } const std::string ExifTag::getKey() @@ -627,6 +638,11 @@ const std::string ExifTag::getHumanValue() return _datum->print(_data); } +int ExifTag::getByteOrder() +{ + return _byteOrder; +} + IptcTag::IptcTag(const std::string& key, Exiv2::IptcData* data): _key(key) { |