diff --git a/libxisf.cpp b/libxisf.cpp index c41de12..508120d 100644 --- a/libxisf.cpp +++ b/libxisf.cpp @@ -966,6 +966,7 @@ void XISFWriter::writeImageElement(const Image &image) writeFITSKeyword(fitsKeyword); writeCFA(image); + writeICC(image._iccProfile); _xml->writeEndElement(); } @@ -1083,6 +1084,17 @@ void XISFWriter::writeCFA(const Image &image) } } +void XISFWriter::writeICC(const QByteArray &icc) +{ + if(!icc.isEmpty()) + { + QByteArray base64 = icc.toBase64(); + _xml->writeStartElement("ICCProfile"); + _xml->writeAttribute("location", "inline:base64"); + _xml->writeCharacters(base64); + } +} + #define REGISTER_METATYPE(type) { int id = qMetaTypeId(); \ typeToId.insert({#type, id}); idToType.insert({id, #type}); } diff --git a/libxisf.h b/libxisf.h index 06848fc..6c507c9 100644 --- a/libxisf.h +++ b/libxisf.h @@ -266,6 +266,7 @@ private: void writeFITSKeyword(const FITSKeyword &keyword); void writeMetadata(); void writeCFA(const Image &image); + void writeICC(const QByteArray &icc); std::unique_ptr _xml; QByteArray _xisfHeader; QByteArray _attachmentsData;