Toward first png.

This commit is contained in:
James Grogan 2022-11-24 17:43:31 +00:00
parent 8f97e9b7a1
commit 33369b1775
12 changed files with 190 additions and 102 deletions

View file

@ -11,6 +11,8 @@ std::string PngHeader::toString() const
sstr << "width: " << mWidth << "\n";
sstr << "height: " << mHeight << "\n";
sstr << "bitDepth: " << (int)mBitDepth << "\n";
sstr << "cached CRC: " << mCachedCrc << "\n";
sstr << mPngInfo.toString();
return sstr.str();
}
@ -66,14 +68,20 @@ void PngHeader::updateData()
mData.push_back(static_cast<unsigned char>(mPngInfo.mInterlaceMethod));
}
uint32_t PngHeader::getCrc() const
uint32_t PngHeader::getCrc()
{
CyclicRedundancyChecker crc_check;
std::vector<unsigned char> char_data = StringUtils::toBytes(mName);
std::copy(mData.begin(), mData.end(), std::back_inserter(char_data));
auto result = crc_check.doCrc(char_data.data(), char_data.size());
return result;
for (auto c : char_data)
{
crc_check.addValue(c);
}
for (auto entry : mData)
{
crc_check.addValue(entry);
}
mCachedCrc = crc_check.getChecksum();
return mCachedCrc;
}
void PngHeader::setPngInfo(const PngInfo& info)