6 Commits

Author SHA1 Message Date
nou aa356443d3 Convert aperture and focal length from mm to meters. 2024-01-05 16:15:30 +01:00
nou 16676540b4 Fix not loading String properties 2024-01-05 16:14:29 +01:00
nou bae3edd12a Resolve some erros for MSVC 2023-12-20 15:28:43 +01:00
nou c848ba75ff Fix typo in README 2023-12-02 14:35:01 +01:00
nou 8a1f305cc7 Fix incorrect header size 2023-10-16 19:17:04 +02:00
nou 8e05a58610 Version 0.2.9 2023-08-13 19:13:39 +02:00
6 changed files with 18 additions and 11 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.14)
project(libXISF VERSION 0.2.8 LANGUAGES CXX C
project(libXISF VERSION 0.2.10 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.")
+1 -1
View File
@@ -9,7 +9,7 @@ To compile simply run these commands
```
cmake -B build -S .
cmake --build build --parallel
cmake --install .
cmake --install build
```
By default it use bundled libraries. If you wish to use external libraries you will may add
+9 -5
View File
@@ -86,12 +86,12 @@ static void byteShuffle(ByteArray &data, int itemSize)
{
ByteArray &input = data;
ByteArray output(input.size());
int num = input.size() / itemSize;
size_t num = input.size() / itemSize;
char *s = output.data();
for(int i=0; i<itemSize; i++)
{
const char *u = input.constData() + i;
for(int o=0; o<num; o++, s++, u += itemSize)
for(size_t o=0; o<num; o++, s++, u += itemSize)
*s = *u;
}
memcpy(s, input.constData() + num * itemSize, input.size() % itemSize);
@@ -105,12 +105,12 @@ static void byteUnshuffle(ByteArray &data, int itemSize)
{
ByteArray &input = data;
ByteArray output(input.size());
int num = input.size() / itemSize;
size_t num = input.size() / itemSize;
const char *s = input.constData();
for(int i=0; i<itemSize; i++)
{
char *u = output.data() + i;
for(int o=0; o<num; o++, s++, u += itemSize)
for(size_t o=0; o<num; o++, s++, u += itemSize)
*u = *s;
}
memcpy(output.data() + num * itemSize, s, input.size() % itemSize);
@@ -389,6 +389,10 @@ bool Image::addFITSKeywordAsProperty(const String &name, const String &value)
{
auto &c = fitsNameToPropertyIdTypeConvert.at(name);
Property prop(c.first, variantFromString(c.second, value));
if(name == "APTDIA" || name == "FOCALLEN")
prop.value.value<LibXISF::Float32>() /= 1000.0f;
updateProperty(prop);
return true;
}
@@ -957,7 +961,7 @@ void XISFWriterPrivate::writeHeader()
offset += image._dataBlock.data.size();
}
uint32_t headerSize = size - sizeof(signature);
uint32_t headerSize = header.size() - sizeof(signature);
header.resize(size, 0);
header.replace(8, sizeof(uint32_t), (const char*)&headerSize, sizeof(uint32_t));
+1 -1
View File
@@ -89,7 +89,7 @@ std::streamsize StreamBuffer::xsgetn(char_type *s, std::streamsize n)
std::streamsize len = egptr() - gptr();
if(len > 0)
{
std::streamsize c = std::min(n, len);
std::streamsize c = n < len ? n : len;
std::memcpy(s, gptr(), c);
gbump(c);
ret = c;
+1 -1
View File
@@ -52,7 +52,7 @@ void sha1(uint8_t *data, size_t len, uint8_t *hash)
nlen += 64 - nlen % 64;
tmp.resize(nlen, 0);
size_t ml = len * 8;
uint64_t ml = len * 8;
tmp[nlen - 1] = ml & 0xff;
tmp[nlen - 2] = ml >> 8 & 0xff;
tmp[nlen - 3] = ml >> 16 & 0xff;
+4 -1
View File
@@ -196,9 +196,12 @@ void deserializeVariant(const pugi::xml_node &node, Variant &variant, const Byte
std::string type = node.attribute("type").as_string();
Variant::Type typeId = typeToId[type];
if(typeId == Variant::Type::String && !node.attribute("location"))
if(typeId == Variant::Type::String)
{
if(!node.attribute("location"))
variant.setValue(node.text().as_string());
else
variant.setValue(String(data.constData(), data.size()));
}
else if(node.attribute("value"))
{