블로그 (Blog)/개발로그 (Devlogs)
qCompress를 이용한 스트링 압축/해제
티클러
2025. 7. 9. 09:01
Qt의 qCompress는 Zlib의 deflate 압축 알고리즘을 사용하고 있고 이를 이용한 스트링을 압축 및 해제하는 방법은 아래와 같음.
std::string StringCompress(const std::string &data, int compress_level)
{
QByteArray compressed = qCompress(QString(data.c_str()).toUtf8(), compress_level); // 압축 레벨 1~9, 9가 최고
return QString::fromLatin1(compressed.toBase64()).toStdString();
}
std::string StringDecompress(const std::string &data)
{
QString compressedBase64 = data.c_str();
QByteArray compressed = QByteArray::fromBase64(compressedBase64.toLatin1());
QByteArray uncompressed = qUncompress(compressed);
return QString::fromUtf8(uncompressed).toStdString();
}