블로그 (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();
}