7 Commits

Author SHA1 Message Date
nou a675e97e0b Release 0.2.8 2023-06-13 12:25:13 +02:00
nou 6028354c61 Remove linking against zstd 2023-06-12 23:41:48 +02:00
nou 467af80cb3 Fix reading ICCprofile 2023-06-05 12:21:27 +02:00
nou 76ee3f361c Release 0.2.6 2023-06-02 08:50:37 +02:00
nou cde2fc9a17 Fix "string sub-command REPLACE requires at least four arguments" 2023-05-31 14:56:26 +02:00
nou 0ddff094ef Fix generating pkgconfig file 2023-05-29 23:16:53 +02:00
nou 5dcc383090 Fix generating pkgconfig file 2023-05-29 22:59:24 +02:00
3 changed files with 24 additions and 17 deletions
+7 -1
View File
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.14)
project(libXISF VERSION 0.2.5 LANGUAGES CXX C
project(libXISF VERSION 0.2.8 LANGUAGES CXX C
HOMEPAGE_URL https://gitea.nouspiro.space/nou/libXISF
DESCRIPTION "LibXISF is C++ library that can read and write XISF files produced by PixInsight.")
@@ -108,6 +108,12 @@ install(FILES ${XISF_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libxisf.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
install(TARGETS XISF LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
list(JOIN PC_LIBS_REQUIRE ", " PC_REQUIRE_STR2)
if(NOT PC_REQUIRE_STR2 STREQUAL "")
string(REPLACE "lz4" "liblz4" PC_REQUIRE_STR ${PC_REQUIRE_STR2})
endif()
list(TRANSFORM PC_LIBS_REQUIRE PREPEND "-l")
list(JOIN PC_LIBS_REQUIRE " " PC_LIBS_STR)
configure_file(libxisf.pc.in libxisf.pc @ONLY)
#testing
+16 -14
View File
@@ -541,6 +541,7 @@ private:
FITSKeyword parseFITSKeyword(const pugi::xml_node &node);
ColorFilterArray parseCFA(const pugi::xml_node &node);
Image parseImage(const pugi::xml_node &node);
void readAttachment(DataBlock &dataBlock);
std::unique_ptr<std::istream> _io;
std::unique_ptr<StreamBuffer> _buffer;
@@ -595,10 +596,7 @@ const Image& XISFReaderPrivate::getImage(uint32_t n, bool readPixels)
Image &img = _images[n];
if(img._dataBlock.attachmentPos && readPixels)
{
_io->seekg(img._dataBlock.attachmentPos);
ByteArray data(img._dataBlock.attachmentSize);
_io->read(data.data(), data.size());
img._dataBlock.decompress(data);
readAttachment(img._dataBlock);
}
return img;
}
@@ -734,16 +732,9 @@ Property XISFReaderPrivate::parseProperty(const pugi::xml_node &node)
{
DataBlock dataBlock = parseDataBlock(node);
if(dataBlock.attachmentPos)
{
data.resize(dataBlock.attachmentSize);
_io->seekg(dataBlock.attachmentPos);
_io->read(data.data(), dataBlock.attachmentSize);
dataBlock.decompress(data);
}
else
{
data = dataBlock.data;
}
readAttachment(dataBlock);
data = dataBlock.data;
}
deserializeVariant(node, property.value, data);
@@ -812,6 +803,9 @@ Image XISFReaderPrivate::parseImage(const pugi::xml_node &node)
if(node.child("ICCProfile"))
{
DataBlock icc = parseDataBlock(node.child("ICCProfile"));
if(icc.attachmentPos)
readAttachment(icc);
image._iccProfile = icc.data;
}
@@ -821,6 +815,14 @@ Image XISFReaderPrivate::parseImage(const pugi::xml_node &node)
return image;
}
void XISFReaderPrivate::readAttachment(DataBlock &dataBlock)
{
ByteArray data(dataBlock.attachmentSize);
_io->seekg(dataBlock.attachmentPos);
_io->read(data.data(), dataBlock.attachmentSize);
dataBlock.decompress(data);
}
class XISFWriterPrivate
{
public:
+1 -2
View File
@@ -7,7 +7,6 @@ Name: @PROJECT_NAME@
Description: @CMAKE_PROJECT_DESCRIPTION@
URL: @CMAKE_PROJECT_HOMEPAGE_URL@
Version: @PROJECT_VERSION@
Requires.private: @PC_LIBS_REQUIRE@
Requires.private: @PC_REQUIRE_STR@
Cflags: -I"${includedir}"
Libs: -L"${libdir}" -lXISF
Libs.private: -L"${libdir}" @PC_LIBS_REQUIRE@