Compare commits
22 Commits
4db1d86530
...
ubuntu
| Author | SHA1 | Date | |
|---|---|---|---|
| 97ada678e5 | |||
| 6954620071 | |||
| 5e85ccfd72 | |||
| 87d65a31fc | |||
| f704b9f041 | |||
| c1e986080c | |||
| 0f24632753 | |||
| ff87f7d943 | |||
| bc4a66a110 | |||
| 20ff9130bb | |||
| 0f86e5ac59 | |||
| 6ae48adc6b | |||
| 605734e217 | |||
| a991f8dfcb | |||
| 7a5c05c3ad | |||
| 4333387af0 | |||
| 7da5f98d8b | |||
| 31bb8cbdd9 | |||
| 4c1d8c4ca6 | |||
| 9d034e77a3 | |||
| 16fc80fa15 | |||
| ef90ad4d7c |
+1
-1
@@ -1,6 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
project(libXISF VERSION 0.2.11 LANGUAGES CXX C
|
||||
project(libXISF VERSION 0.2.12 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.")
|
||||
|
||||
|
||||
Vendored
+80
@@ -0,0 +1,80 @@
|
||||
libxisf (0.2.12-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Fix bug in writing ICCProfile
|
||||
* Fix handling big +2GiB images
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Sat, 23 Mar 2024 09:25:46 +0100
|
||||
|
||||
libxisf (0.2.11-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Fix not loading String properties
|
||||
* Convert aperture and focal length from mm to meters
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Fri, 05 Jan 2024 16:18:32 +0100
|
||||
|
||||
libxisf (0.2.10-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Fix writing incorrect header size
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Tue, 17 Oct 2023 20:33:05 +0200
|
||||
|
||||
libxisf (0.2.9-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Add support for ZSTD
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Mon, 14 Aug 2023 10:32:30 +0200
|
||||
|
||||
libxisf (0.2.6-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Add method for ICC profile
|
||||
* pkg-config file support
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Fri, 02 Jun 2023 09:16:59 +0200
|
||||
|
||||
libxisf (0.2.4-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Add getThumbnail method
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Tue, 19 May 2023 19:23:34 +0200
|
||||
|
||||
libxisf (0.2.3-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Fix Color filter array
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Tue, 11 Apr 2023 12:39:41 +0200
|
||||
|
||||
libxisf (0.2.0-ubuntu2) focal; urgency=medium
|
||||
|
||||
* Fix lintian errors
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Sun, 19 Mar 2023 22:10:39 +0100
|
||||
|
||||
libxisf (0.2.0-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Rewrite to remove Qt as dependency
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Fri, 10 Mar 2023 22:10:01 +0100
|
||||
|
||||
libxisf (0.1.3-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Write missing pixelStorage attribute
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Fri, 17 Feb 2023 16:57:30 +0100
|
||||
|
||||
libxisf (0.1.2-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Add qtbase5-dev as dependency to libxisf-dev
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Thu, 09 Feb 2023 21:28:45 +0100
|
||||
|
||||
libxisf (0.1.1-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Fixed packaging
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Wed, 08 Feb 2023 18:57:50 +0100
|
||||
|
||||
libxisf (0.1.0-ubuntu1) focal; urgency=low
|
||||
|
||||
* Initial release.
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Tue, 07 Feb 2023 10:47:08 +0100
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
10
|
||||
Vendored
+45
@@ -0,0 +1,45 @@
|
||||
Source: libxisf
|
||||
Priority: optional
|
||||
Maintainer: Dušan Poizl <nou@nouspiro.space>
|
||||
Build-Depends: debhelper (>= 9),
|
||||
cdbs,
|
||||
cmake,
|
||||
pkg-config,
|
||||
liblz4-dev,
|
||||
libpugixml-dev,
|
||||
zlib1g-dev,
|
||||
libzstd-dev
|
||||
Standards-Version: 4.5.0
|
||||
Section: libs
|
||||
Homepage: https://gitea.nouspiro.space/nou/libXISF
|
||||
Vcs-Git: https://gitea.nouspiro.space/nou/libXISF.git
|
||||
|
||||
Package: libxisf-dev
|
||||
Section: libdevel
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Depends: libxisf (= ${binary:Version}), ${misc:Depends}
|
||||
Description: Library to load and save XISF images development files
|
||||
This package contain development files.
|
||||
.
|
||||
XISF is native format of PixInsight astroprocessing suite.
|
||||
Extensible Image Serialization Format (XISF) is the native file format
|
||||
of PixInsight. It is a free, open format for storage, management and
|
||||
interchange of digital images and associated data.
|
||||
.
|
||||
This C++ library implements XISF specification 1.0 which can be found at
|
||||
https://pixinsight.com/doc/docs/XISF-1.0-spec/XISF-1.0-spec.html
|
||||
|
||||
Package: libxisf
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Conflicts: libxisf0
|
||||
Description: Library to load and save XISF images
|
||||
XISF is native format of PixInsight astroprocessing suite.
|
||||
Extensible Image Serialization Format (XISF) is the native file format
|
||||
of PixInsight. It is a free, open format for storage, management and
|
||||
interchange of digital images and associated data.
|
||||
.
|
||||
This C++ library implements XISF specification 1.0 which can be found at
|
||||
https://pixinsight.com/doc/docs/XISF-1.0-spec/XISF-1.0-spec.html
|
||||
Vendored
+97
@@ -0,0 +1,97 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: libxisf
|
||||
Source: https://gitea.nouspiro.space/nou/libXISF
|
||||
|
||||
Files: * debian/*
|
||||
Copyright: (c) 2023 <Dušan Poizl nou@nouspiro.space>
|
||||
License: GPL-3+
|
||||
This program 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 3 of the License, or
|
||||
(at your option) any later version.
|
||||
.
|
||||
This program 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 General Public License for more details.
|
||||
.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
.
|
||||
On Debian systems, the complete texts of the GNU General Public Licenses
|
||||
version 2 and 3 can be found in '/usr/share/common-licenses/GPL-2' and
|
||||
'/usr/share/common-licenses/GPL-3'.
|
||||
|
||||
Files: lz4/*
|
||||
Copyright: (c) 2011-2020, Yann Collet
|
||||
License: BSD-2-clause
|
||||
LZ4 Library
|
||||
Copyright (c) 2011-2020, Yann Collet
|
||||
All rights reserved.
|
||||
.
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
.
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this
|
||||
list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Files: zlib/*
|
||||
Copyright: (c) 1995-2022 Jean-loup Gailly and Mark Adler
|
||||
License: Zlib
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
.
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
.
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
.
|
||||
Jean-loup Gailly Mark Adler
|
||||
jloup@gzip.org madler@alumni.caltech.edu
|
||||
|
||||
Files: pugixml/*
|
||||
Copyright: (c) 2006-2022 Arseny Kapoulkine
|
||||
License: MIT
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
usr/include
|
||||
usr/lib/*/*.so
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
usr/lib/*/*.so.*
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
include /usr/share/dpkg/buildflags.mk
|
||||
CFLAGS+=$(CPPFLAGS)
|
||||
CXXFLAGS+=$(CPPFLAGS)
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- -DCMAKE_LIBRARY_ARCHITECTURE="$(DEB_HOST_MULTIARCH)" -DUSE_BUNDLED_LIBS=Off
|
||||
+32
-14
@@ -179,12 +179,12 @@ void DataBlock::decompress(const ByteArray &input, const String &encoding)
|
||||
dstPtr += block.second;
|
||||
}
|
||||
|
||||
}
|
||||
#else
|
||||
throw Error("ZSTD support not compiled");
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
subblocks.clear();
|
||||
|
||||
@@ -956,6 +956,7 @@ private:
|
||||
void writePropertyElement(pugi::xml_node &node, const Property &property);
|
||||
void writeFITSKeyword(pugi::xml_node &node, const FITSKeyword &keyword);
|
||||
void writeMetadata(pugi::xml_node &node);
|
||||
void updateImageAttachmentPos(pugi::xml_node &root, size_t offset);
|
||||
ByteArray _xisfHeader;
|
||||
ByteArray _attachmentsData;
|
||||
std::vector<Image> _images;
|
||||
@@ -1026,25 +1027,26 @@ void XISFWriterPrivate::writeHeader()
|
||||
|
||||
writeMetadata(root);
|
||||
|
||||
uint32_t size = 0;
|
||||
std::string header;
|
||||
while(true)
|
||||
{
|
||||
std::stringstream xml;
|
||||
xml.write(signature, sizeof(signature));
|
||||
doc.save(xml, "", pugi::format_raw);
|
||||
|
||||
std::string header = xml.str();
|
||||
uint32_t size = header.size();
|
||||
|
||||
uint32_t offset = 0;
|
||||
std::string replace = "attachment:2147483648";
|
||||
for(auto &image : _images)
|
||||
header = xml.str();
|
||||
if(size != header.size())
|
||||
{
|
||||
std::string blockPos = std::string("attachment:") + std::to_string(size + offset);
|
||||
size_t pos = header.find(replace, 32);
|
||||
header.replace(pos, replace.size(), blockPos);
|
||||
offset += image._dataBlock.data.size();
|
||||
size = header.size();
|
||||
updateImageAttachmentPos(root, size);
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t headerSize = header.size() - sizeof(signature);
|
||||
header.resize(size, 0);
|
||||
header.replace(8, sizeof(uint32_t), (const char*)&headerSize, sizeof(uint32_t));
|
||||
|
||||
_xisfHeader = ByteArray(header.c_str(), header.size());
|
||||
@@ -1104,7 +1106,10 @@ void XISFWriterPrivate::writeDataBlockAttributes(pugi::xml_node &image_node, con
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string attachment = "attachment:2147483648:" + std::to_string(dataBlock.data.size());
|
||||
std::string attachment = "attachment:";
|
||||
if(dataBlock.attachmentPos == 0) attachment += "99999";
|
||||
else attachment += std::to_string(dataBlock.attachmentPos);
|
||||
attachment += ":" + std::to_string(dataBlock.data.size());
|
||||
image_node.append_attribute("location").set_value(attachment.c_str());
|
||||
}
|
||||
|
||||
@@ -1177,6 +1182,19 @@ void XISFWriterPrivate::writeMetadata(pugi::xml_node &node)
|
||||
writePropertyElement(metadata, Property("XISF:CreatorApplication", "LibXISF"));
|
||||
}
|
||||
|
||||
void XISFWriterPrivate::updateImageAttachmentPos(pugi::xml_node &root, size_t offset)
|
||||
{
|
||||
pugi::xpath_node_set imageNodes = root.select_nodes("//Image");
|
||||
int i = 0;
|
||||
for(auto &image : _images)
|
||||
{
|
||||
pugi::xml_node node = imageNodes[i++].node();
|
||||
std::string location = "attachment:" + std::to_string(offset) + ":" + std::to_string(image._dataBlock.data.size());
|
||||
offset += image._dataBlock.data.size();
|
||||
node.attribute("location").set_value(location.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
XISFReader::XISFReader()
|
||||
{
|
||||
p = new XISFReaderPrivate;
|
||||
|
||||
Reference in New Issue
Block a user