const ref to ref conversions
This commit is contained in:
parent
64bb7820a0
commit
2526dcf5a1
@ -89,8 +89,8 @@ class EXIV2API Cr2Parser {
|
|||||||
@brief Encode metadata from the provided metadata to CR2 format.
|
@brief Encode metadata from the provided metadata to CR2 format.
|
||||||
See TiffParser::encode().
|
See TiffParser::encode().
|
||||||
*/
|
*/
|
||||||
static WriteMethod encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder, const ExifData& exifData,
|
static WriteMethod encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder, ExifData& exifData,
|
||||||
const IptcData& iptcData, const XmpData& xmpData);
|
IptcData& iptcData, XmpData& xmpData);
|
||||||
|
|
||||||
}; // class Cr2Parser
|
}; // class Cr2Parser
|
||||||
|
|
||||||
|
|||||||
@ -530,7 +530,7 @@ class EXIV2API ExifParser {
|
|||||||
|
|
||||||
@return Write method used.
|
@return Write method used.
|
||||||
*/
|
*/
|
||||||
static WriteMethod encode(Blob& blob, const byte* pData, size_t size, ByteOrder byteOrder, const ExifData& exifData);
|
static WriteMethod encode(Blob& blob, const byte* pData, size_t size, ByteOrder byteOrder, ExifData& exifData);
|
||||||
/*!
|
/*!
|
||||||
@brief Encode metadata from the provided metadata to Exif format.
|
@brief Encode metadata from the provided metadata to Exif format.
|
||||||
|
|
||||||
@ -551,7 +551,7 @@ class EXIV2API ExifParser {
|
|||||||
@param byteOrder Byte order to use.
|
@param byteOrder Byte order to use.
|
||||||
@param exifData Exif metadata container.
|
@param exifData Exif metadata container.
|
||||||
*/
|
*/
|
||||||
static void encode(Blob& blob, ByteOrder byteOrder, const ExifData& exifData) {
|
static void encode(Blob& blob, ByteOrder byteOrder, ExifData& exifData) {
|
||||||
encode(blob, nullptr, 0, byteOrder, exifData);
|
encode(blob, nullptr, 0, byteOrder, exifData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -78,8 +78,8 @@ class EXIV2API OrfParser {
|
|||||||
@brief Encode metadata from the provided metadata to ORF format.
|
@brief Encode metadata from the provided metadata to ORF format.
|
||||||
See TiffParser::encode().
|
See TiffParser::encode().
|
||||||
*/
|
*/
|
||||||
static WriteMethod encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder, const ExifData& exifData,
|
static WriteMethod encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder, ExifData& exifData,
|
||||||
const IptcData& iptcData, const XmpData& xmpData);
|
IptcData& iptcData, XmpData& xmpData);
|
||||||
}; // class OrfParser
|
}; // class OrfParser
|
||||||
|
|
||||||
// *****************************************************************************
|
// *****************************************************************************
|
||||||
|
|||||||
@ -75,7 +75,7 @@ class EXIV2API PsdImage : public Image {
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
void doWriteMetadata(BasicIo& outIo);
|
void doWriteMetadata(BasicIo& outIo);
|
||||||
uint32_t writeExifData(const ExifData& exifData, BasicIo& out);
|
uint32_t writeExifData(ExifData& exifData, BasicIo& out);
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
//! @name Accessors
|
//! @name Accessors
|
||||||
|
|||||||
@ -137,8 +137,8 @@ class EXIV2API TiffParser {
|
|||||||
|
|
||||||
@return Write method used.
|
@return Write method used.
|
||||||
*/
|
*/
|
||||||
static WriteMethod encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder, const ExifData& exifData,
|
static WriteMethod encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder, ExifData& exifData,
|
||||||
const IptcData& iptcData, const XmpData& xmpData);
|
IptcData& iptcData, XmpData& xmpData);
|
||||||
|
|
||||||
}; // class TiffParser
|
}; // class TiffParser
|
||||||
|
|
||||||
|
|||||||
@ -103,11 +103,8 @@ ByteOrder Cr2Parser::decode(ExifData& exifData, IptcData& iptcData, XmpData& xmp
|
|||||||
Internal::TiffMapping::findDecoder, &cr2Header);
|
Internal::TiffMapping::findDecoder, &cr2Header);
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteMethod Cr2Parser::encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder,
|
WriteMethod Cr2Parser::encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder, ExifData& exifData,
|
||||||
const ExifData& exifData, const IptcData& iptcData, const XmpData& xmpData) {
|
IptcData& iptcData, XmpData& xmpData) {
|
||||||
// Copy to be able to modify the Exif data
|
|
||||||
ExifData ed = exifData;
|
|
||||||
|
|
||||||
// Delete IFDs which do not occur in TIFF images
|
// Delete IFDs which do not occur in TIFF images
|
||||||
static constexpr auto filteredIfds = std::array{
|
static constexpr auto filteredIfds = std::array{
|
||||||
IfdId::panaRawId,
|
IfdId::panaRawId,
|
||||||
@ -116,13 +113,14 @@ WriteMethod Cr2Parser::encode(BasicIo& io, const byte* pData, size_t size, ByteO
|
|||||||
#ifdef EXIV2_DEBUG_MESSAGES
|
#ifdef EXIV2_DEBUG_MESSAGES
|
||||||
std::cerr << "Warning: Exif IFD " << filteredIfd << " not encoded\n";
|
std::cerr << "Warning: Exif IFD " << filteredIfd << " not encoded\n";
|
||||||
#endif
|
#endif
|
||||||
ed.erase(std::remove_if(ed.begin(), ed.end(), Internal::FindExifdatum(filteredIfd)), ed.end());
|
exifData.erase(std::remove_if(exifData.begin(), exifData.end(), Internal::FindExifdatum(filteredIfd)),
|
||||||
|
exifData.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
auto header = Internal::Cr2Header(byteOrder);
|
auto header = Internal::Cr2Header(byteOrder);
|
||||||
Internal::OffsetWriter offsetWriter;
|
Internal::OffsetWriter offsetWriter;
|
||||||
offsetWriter.setOrigin(Internal::OffsetWriter::cr2RawIfdOffset, Internal::Cr2Header::offset2addr(), byteOrder);
|
offsetWriter.setOrigin(Internal::OffsetWriter::cr2RawIfdOffset, Internal::Cr2Header::offset2addr(), byteOrder);
|
||||||
return Internal::TiffParserWorker::encode(io, pData, size, ed, iptcData, xmpData, Internal::Tag::root,
|
return Internal::TiffParserWorker::encode(io, pData, size, exifData, iptcData, xmpData, Internal::Tag::root,
|
||||||
Internal::TiffMapping::findEncoder, &header, &offsetWriter);
|
Internal::TiffMapping::findEncoder, &header, &offsetWriter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
31
src/exif.cpp
31
src/exif.cpp
@ -500,10 +500,7 @@ ByteOrder ExifParser::decode(ExifData& exifData, const byte* pData, size_t size)
|
|||||||
enum Ptt { pttLen, pttTag, pttIfd };
|
enum Ptt { pttLen, pttTag, pttIfd };
|
||||||
//! @endcond
|
//! @endcond
|
||||||
|
|
||||||
WriteMethod ExifParser::encode(Blob& blob, const byte* pData, size_t size, ByteOrder byteOrder,
|
WriteMethod ExifParser::encode(Blob& blob, const byte* pData, size_t size, ByteOrder byteOrder, ExifData& exifData) {
|
||||||
const ExifData& exifData) {
|
|
||||||
ExifData ed = exifData;
|
|
||||||
|
|
||||||
// Delete IFD0 tags that are "not recorded" in compressed images
|
// Delete IFD0 tags that are "not recorded" in compressed images
|
||||||
// Reference: Exif 2.2 specs, 4.6.8 Tag Support Levels, section A
|
// Reference: Exif 2.2 specs, 4.6.8 Tag Support Levels, section A
|
||||||
static constexpr auto filteredIfd0Tags = std::array{
|
static constexpr auto filteredIfd0Tags = std::array{
|
||||||
@ -533,12 +530,12 @@ WriteMethod ExifParser::encode(Blob& blob, const byte* pData, size_t size, ByteO
|
|||||||
"Exif.Canon.AFFineRotation",
|
"Exif.Canon.AFFineRotation",
|
||||||
};
|
};
|
||||||
for (auto&& filteredIfd0Tag : filteredIfd0Tags) {
|
for (auto&& filteredIfd0Tag : filteredIfd0Tags) {
|
||||||
auto pos = ed.findKey(ExifKey(filteredIfd0Tag));
|
auto pos = exifData.findKey(ExifKey(filteredIfd0Tag));
|
||||||
if (pos != ed.end()) {
|
if (pos != exifData.end()) {
|
||||||
#ifdef EXIV2_DEBUG_MESSAGES
|
#ifdef EXIV2_DEBUG_MESSAGES
|
||||||
std::cerr << "Warning: Exif tag " << pos->key() << " not encoded\n";
|
std::cerr << "Warning: Exif tag " << pos->key() << " not encoded\n";
|
||||||
#endif
|
#endif
|
||||||
ed.erase(pos);
|
exifData.erase(pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -552,7 +549,7 @@ WriteMethod ExifParser::encode(Blob& blob, const byte* pData, size_t size, ByteO
|
|||||||
#ifdef EXIV2_DEBUG_MESSAGES
|
#ifdef EXIV2_DEBUG_MESSAGES
|
||||||
std::cerr << "Warning: Exif IFD " << filteredIfd << " not encoded\n";
|
std::cerr << "Warning: Exif IFD " << filteredIfd << " not encoded\n";
|
||||||
#endif
|
#endif
|
||||||
eraseIfd(ed, filteredIfd);
|
eraseIfd(exifData, filteredIfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
// IPTC and XMP are stored elsewhere, not in the Exif APP1 segment.
|
// IPTC and XMP are stored elsewhere, not in the Exif APP1 segment.
|
||||||
@ -562,7 +559,7 @@ WriteMethod ExifParser::encode(Blob& blob, const byte* pData, size_t size, ByteO
|
|||||||
// Encode and check if the result fits into a JPEG Exif APP1 segment
|
// Encode and check if the result fits into a JPEG Exif APP1 segment
|
||||||
MemIo mio1;
|
MemIo mio1;
|
||||||
TiffHeader header(byteOrder, 0x00000008, false);
|
TiffHeader header(byteOrder, 0x00000008, false);
|
||||||
WriteMethod wm = TiffParserWorker::encode(mio1, pData, size, ed, emptyIptc, emptyXmp, Tag::root,
|
WriteMethod wm = TiffParserWorker::encode(mio1, pData, size, exifData, emptyIptc, emptyXmp, Tag::root,
|
||||||
TiffMapping::findEncoder, &header, nullptr);
|
TiffMapping::findEncoder, &header, nullptr);
|
||||||
if (mio1.size() <= 65527) {
|
if (mio1.size() <= 65527) {
|
||||||
append(blob, mio1.mmap(), mio1.size());
|
append(blob, mio1.mmap(), mio1.size());
|
||||||
@ -609,22 +606,22 @@ WriteMethod ExifParser::encode(Blob& blob, const byte* pData, size_t size, ByteO
|
|||||||
switch (ptt) {
|
switch (ptt) {
|
||||||
case pttLen: {
|
case pttLen: {
|
||||||
delTags = false;
|
delTags = false;
|
||||||
if (auto pos = ed.findKey(ExifKey(key)); pos != ed.end() && sumToLong(*pos) > 32768) {
|
if (auto pos = exifData.findKey(ExifKey(key)); pos != exifData.end() && sumToLong(*pos) > 32768) {
|
||||||
delTags = true;
|
delTags = true;
|
||||||
#ifndef SUPPRESS_WARNINGS
|
#ifndef SUPPRESS_WARNINGS
|
||||||
EXV_WARNING << "Exif tag " << pos->key() << " not encoded\n";
|
EXV_WARNING << "Exif tag " << pos->key() << " not encoded\n";
|
||||||
#endif
|
#endif
|
||||||
ed.erase(pos);
|
exifData.erase(pos);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case pttTag: {
|
case pttTag: {
|
||||||
if (delTags) {
|
if (delTags) {
|
||||||
if (auto pos = ed.findKey(ExifKey(key)); pos != ed.end()) {
|
if (auto pos = exifData.findKey(ExifKey(key)); pos != exifData.end()) {
|
||||||
#ifndef SUPPRESS_WARNINGS
|
#ifndef SUPPRESS_WARNINGS
|
||||||
EXV_WARNING << "Exif tag " << pos->key() << " not encoded\n";
|
EXV_WARNING << "Exif tag " << pos->key() << " not encoded\n";
|
||||||
#endif
|
#endif
|
||||||
ed.erase(pos);
|
exifData.erase(pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -634,19 +631,19 @@ WriteMethod ExifParser::encode(Blob& blob, const byte* pData, size_t size, ByteO
|
|||||||
#ifndef SUPPRESS_WARNINGS
|
#ifndef SUPPRESS_WARNINGS
|
||||||
EXV_WARNING << "Exif IFD " << key << " not encoded\n";
|
EXV_WARNING << "Exif IFD " << key << " not encoded\n";
|
||||||
#endif
|
#endif
|
||||||
eraseIfd(ed, Internal::groupId(key));
|
eraseIfd(exifData, Internal::groupId(key));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete unknown tags larger than 4kB and known tags larger than 20kB.
|
// Delete unknown tags larger than 4kB and known tags larger than 20kB.
|
||||||
for (auto tag_iter = ed.begin(); tag_iter != ed.end();) {
|
for (auto tag_iter = exifData.begin(); tag_iter != exifData.end();) {
|
||||||
if ((tag_iter->size() > 4096 && tag_iter->tagName().substr(0, 2) == "0x") || tag_iter->size() > 20480) {
|
if ((tag_iter->size() > 4096 && tag_iter->tagName().substr(0, 2) == "0x") || tag_iter->size() > 20480) {
|
||||||
#ifndef SUPPRESS_WARNINGS
|
#ifndef SUPPRESS_WARNINGS
|
||||||
EXV_WARNING << "Exif tag " << tag_iter->key() << " not encoded\n";
|
EXV_WARNING << "Exif tag " << tag_iter->key() << " not encoded\n";
|
||||||
#endif
|
#endif
|
||||||
tag_iter = ed.erase(tag_iter);
|
tag_iter = exifData.erase(tag_iter);
|
||||||
} else {
|
} else {
|
||||||
++tag_iter;
|
++tag_iter;
|
||||||
}
|
}
|
||||||
@ -654,7 +651,7 @@ WriteMethod ExifParser::encode(Blob& blob, const byte* pData, size_t size, ByteO
|
|||||||
|
|
||||||
// Encode the remaining Exif tags again, don't care if it fits this time
|
// Encode the remaining Exif tags again, don't care if it fits this time
|
||||||
MemIo mio2;
|
MemIo mio2;
|
||||||
wm = TiffParserWorker::encode(mio2, pData, size, ed, emptyIptc, emptyXmp, Tag::root, TiffMapping::findEncoder,
|
wm = TiffParserWorker::encode(mio2, pData, size, exifData, emptyIptc, emptyXmp, Tag::root, TiffMapping::findEncoder,
|
||||||
&header, nullptr);
|
&header, nullptr);
|
||||||
append(blob, mio2.mmap(), mio2.size());
|
append(blob, mio2.mmap(), mio2.size());
|
||||||
#ifdef EXIV2_DEBUG_MESSAGES
|
#ifdef EXIV2_DEBUG_MESSAGES
|
||||||
|
|||||||
@ -116,11 +116,8 @@ ByteOrder OrfParser::decode(ExifData& exifData, IptcData& iptcData, XmpData& xmp
|
|||||||
&orfHeader);
|
&orfHeader);
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteMethod OrfParser::encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder,
|
WriteMethod OrfParser::encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder, ExifData& exifData,
|
||||||
const ExifData& exifData, const IptcData& iptcData, const XmpData& xmpData) {
|
IptcData& iptcData, XmpData& xmpData) {
|
||||||
// Copy to be able to modify the Exif data
|
|
||||||
ExifData ed = exifData;
|
|
||||||
|
|
||||||
// Delete IFDs which do not occur in TIFF images
|
// Delete IFDs which do not occur in TIFF images
|
||||||
static constexpr auto filteredIfds = {
|
static constexpr auto filteredIfds = {
|
||||||
IfdId::panaRawId,
|
IfdId::panaRawId,
|
||||||
@ -129,12 +126,12 @@ WriteMethod OrfParser::encode(BasicIo& io, const byte* pData, size_t size, ByteO
|
|||||||
#ifdef EXIV2_DEBUG_MESSAGES
|
#ifdef EXIV2_DEBUG_MESSAGES
|
||||||
std::cerr << "Warning: Exif IFD " << filteredIfd << " not encoded\n";
|
std::cerr << "Warning: Exif IFD " << filteredIfd << " not encoded\n";
|
||||||
#endif
|
#endif
|
||||||
ed.erase(std::remove_if(ed.begin(), ed.end(), FindExifdatum(filteredIfd)), ed.end());
|
exifData.erase(std::remove_if(exifData.begin(), exifData.end(), FindExifdatum(filteredIfd)), exifData.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
OrfHeader header(byteOrder);
|
OrfHeader header(byteOrder);
|
||||||
return TiffParserWorker::encode(io, pData, size, ed, iptcData, xmpData, Tag::root, TiffMapping::findEncoder, &header,
|
return TiffParserWorker::encode(io, pData, size, exifData, iptcData, xmpData, Tag::root, TiffMapping::findEncoder,
|
||||||
nullptr);
|
&header, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// *************************************************************************
|
// *************************************************************************
|
||||||
|
|||||||
@ -579,7 +579,7 @@ uint32_t PsdImage::writeIptcData(const IptcData& iptcData, BasicIo& out) {
|
|||||||
return resLength;
|
return resLength;
|
||||||
} // PsdImage::writeIptcData
|
} // PsdImage::writeIptcData
|
||||||
|
|
||||||
uint32_t PsdImage::writeExifData(const ExifData& exifData, BasicIo& out) {
|
uint32_t PsdImage::writeExifData(ExifData& exifData, BasicIo& out) {
|
||||||
uint32_t resLength = 0;
|
uint32_t resLength = 0;
|
||||||
byte buf[8];
|
byte buf[8];
|
||||||
|
|
||||||
|
|||||||
@ -216,11 +216,8 @@ ByteOrder TiffParser::decode(ExifData& exifData, IptcData& iptcData, XmpData& xm
|
|||||||
return TiffParserWorker::decode(exifData, iptcData, xmpData, pData, size, root, TiffMapping::findDecoder);
|
return TiffParserWorker::decode(exifData, iptcData, xmpData, pData, size, root, TiffMapping::findDecoder);
|
||||||
} // TiffParser::decode
|
} // TiffParser::decode
|
||||||
|
|
||||||
WriteMethod TiffParser::encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder,
|
WriteMethod TiffParser::encode(BasicIo& io, const byte* pData, size_t size, ByteOrder byteOrder, ExifData& exifData,
|
||||||
const ExifData& exifData, const IptcData& iptcData, const XmpData& xmpData) {
|
IptcData& iptcData, XmpData& xmpData) {
|
||||||
// Copy to be able to modify the Exif data
|
|
||||||
ExifData ed = exifData;
|
|
||||||
|
|
||||||
// Delete IFDs which do not occur in TIFF images
|
// Delete IFDs which do not occur in TIFF images
|
||||||
static constexpr auto filteredIfds = std::array{
|
static constexpr auto filteredIfds = std::array{
|
||||||
IfdId::panaRawId,
|
IfdId::panaRawId,
|
||||||
@ -229,12 +226,12 @@ WriteMethod TiffParser::encode(BasicIo& io, const byte* pData, size_t size, Byte
|
|||||||
#ifdef EXIV2_DEBUG_MESSAGES
|
#ifdef EXIV2_DEBUG_MESSAGES
|
||||||
std::cerr << "Warning: Exif IFD " << filteredIfd << " not encoded\n";
|
std::cerr << "Warning: Exif IFD " << filteredIfd << " not encoded\n";
|
||||||
#endif
|
#endif
|
||||||
ed.erase(std::remove_if(ed.begin(), ed.end(), FindExifdatum(filteredIfd)), ed.end());
|
exifData.erase(std::remove_if(exifData.begin(), exifData.end(), FindExifdatum(filteredIfd)), exifData.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
TiffHeader header(byteOrder);
|
TiffHeader header(byteOrder);
|
||||||
return TiffParserWorker::encode(io, pData, size, ed, iptcData, xmpData, Tag::root, TiffMapping::findEncoder, &header,
|
return TiffParserWorker::encode(io, pData, size, exifData, iptcData, xmpData, Tag::root, TiffMapping::findEncoder,
|
||||||
nullptr);
|
&header, nullptr);
|
||||||
} // TiffParser::encode
|
} // TiffParser::encode
|
||||||
|
|
||||||
// *************************************************************************
|
// *************************************************************************
|
||||||
|
|||||||
@ -2036,10 +2036,9 @@ ByteOrder TiffParserWorker::decode(ExifData& exifData, IptcData& iptcData, XmpDa
|
|||||||
|
|
||||||
} // TiffParserWorker::decode
|
} // TiffParserWorker::decode
|
||||||
|
|
||||||
WriteMethod TiffParserWorker::encode(BasicIo& io, const byte* pData, size_t size, const ExifData& exifData,
|
WriteMethod TiffParserWorker::encode(BasicIo& io, const byte* pData, size_t size, ExifData& exifData,
|
||||||
const IptcData& iptcData, const XmpData& xmpData, uint32_t root,
|
IptcData& iptcData, XmpData& xmpData, uint32_t root, FindEncoderFct findEncoderFct,
|
||||||
FindEncoderFct findEncoderFct, TiffHeaderBase* pHeader,
|
TiffHeaderBase* pHeader, OffsetWriter* pOffsetWriter) {
|
||||||
OffsetWriter* pOffsetWriter) {
|
|
||||||
/*
|
/*
|
||||||
1) parse the binary image, if one is provided, and
|
1) parse the binary image, if one is provided, and
|
||||||
2) attempt updating the parsed tree in-place ("non-intrusive writing")
|
2) attempt updating the parsed tree in-place ("non-intrusive writing")
|
||||||
|
|||||||
@ -216,9 +216,9 @@ class TiffParserWorker {
|
|||||||
writing"). If there is a parsed tree, it is only used to access the
|
writing"). If there is a parsed tree, it is only used to access the
|
||||||
image data in this case.
|
image data in this case.
|
||||||
*/
|
*/
|
||||||
static WriteMethod encode(BasicIo& io, const byte* pData, size_t size, const ExifData& exifData,
|
static WriteMethod encode(BasicIo& io, const byte* pData, size_t size, ExifData& exifData, IptcData& iptcData,
|
||||||
const IptcData& iptcData, const XmpData& xmpData, uint32_t root,
|
XmpData& xmpData, uint32_t root, FindEncoderFct findEncoderFct, TiffHeaderBase* pHeader,
|
||||||
FindEncoderFct findEncoderFct, TiffHeaderBase* pHeader, OffsetWriter* pOffsetWriter);
|
OffsetWriter* pOffsetWriter);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@ -443,10 +443,10 @@ void TiffDecoder::visitBinaryElement(TiffBinaryElement* object) {
|
|||||||
decodeTiffEntry(object);
|
decodeTiffEntry(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
TiffEncoder::TiffEncoder(ExifData exifData, const IptcData& iptcData, const XmpData& xmpData, TiffComponent* pRoot,
|
TiffEncoder::TiffEncoder(ExifData& exifData, IptcData& iptcData, XmpData& xmpData, TiffComponent* pRoot,
|
||||||
const bool isNewImage, const PrimaryGroups* pPrimaryGroups, const TiffHeaderBase* pHeader,
|
const bool isNewImage, const PrimaryGroups* pPrimaryGroups, const TiffHeaderBase* pHeader,
|
||||||
FindEncoderFct findEncoderFct) :
|
FindEncoderFct findEncoderFct) :
|
||||||
exifData_(std::move(exifData)),
|
exifData_(exifData),
|
||||||
iptcData_(iptcData),
|
iptcData_(iptcData),
|
||||||
xmpData_(xmpData),
|
xmpData_(xmpData),
|
||||||
pHeader_(pHeader),
|
pHeader_(pHeader),
|
||||||
|
|||||||
@ -349,9 +349,8 @@ class TiffEncoder : public TiffVisitor {
|
|||||||
to, the image with the metadata to encode and a function to
|
to, the image with the metadata to encode and a function to
|
||||||
find special encoders.
|
find special encoders.
|
||||||
*/
|
*/
|
||||||
TiffEncoder(ExifData exifData, const IptcData& iptcData, const XmpData& xmpData, TiffComponent* pRoot,
|
TiffEncoder(ExifData& exifData, IptcData& iptcData, XmpData& xmpData, TiffComponent* pRoot, bool isNewImage,
|
||||||
bool isNewImage, const PrimaryGroups* pPrimaryGroups, const TiffHeaderBase* pHeader,
|
const PrimaryGroups* pPrimaryGroups, const TiffHeaderBase* pHeader, FindEncoderFct findEncoderFct);
|
||||||
FindEncoderFct findEncoderFct);
|
|
||||||
TiffEncoder(const TiffEncoder&) = delete;
|
TiffEncoder(const TiffEncoder&) = delete;
|
||||||
TiffEncoder& operator=(const TiffEncoder&) = delete;
|
TiffEncoder& operator=(const TiffEncoder&) = delete;
|
||||||
//! Virtual destructor
|
//! Virtual destructor
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user