Fix pnm and pfm reader

This commit is contained in:
2021-01-06 12:50:08 +01:00
parent f21a665903
commit b447ad5e62
2 changed files with 8 additions and 3 deletions

View File

@@ -107,7 +107,7 @@ namespace openVulkanoCpp
}
image = std::make_unique<float[]>(size);
inStream.read(reinterpret_cast<char*>(image.get()), size);
inStream.read(reinterpret_cast<char*>(image.get()), size * sizeof(float));
}
static PfmImage ReadImage(std::istream& inStream)

View File

@@ -63,10 +63,15 @@ namespace openVulkanoCpp
return value;
}
[[nodiscard]] constexpr char GetMagicNumberChar() const
{
return '0' + static_cast<char>(GetMagicNumberValue());
}
friend std::ostream& operator<< (std::ostream& outStream, const PnmHeader& pnmHeader)
{
outStream << 'P';
outStream << ('0' + pnmHeader.GetMagicNumberValue());
outStream << pnmHeader.GetMagicNumberChar();
outStream << '\n';
outStream << pnmHeader.width << ' ' << pnmHeader.height << '\n';
outStream << pnmHeader.maxValue << '\n';
@@ -81,7 +86,7 @@ namespace openVulkanoCpp
uint8_t val = marker[1] - '0';
if (val > 6) throw std::runtime_error("Malformed PNM header!");
pnmHeader.ascii = val < 4;
pnmHeader.color = static_cast<ColorMode>(val & 0x11);
pnmHeader.color = static_cast<ColorMode>(val - 3);
inStream >> pnmHeader.width >> pnmHeader.height;
inStream >> pnmHeader.maxValue;
inStream.get();