Библиотека Qt поддерживает зжатие данных с помощью библиотеки zlib.
QByteArray qCompress ( const QByteArray & data, int compressionLevel = -1 )
Сжимает данные. data - Массив, который необходимо сжать, compressionLevel - степень сжатия от 0 до 9. При этом чем больше цифра, тем сильнее сжатие, и тем дольше оно будет
проводиться.
Возвращает соответственно сжатые данные. Для бинарника размером 8 мб я получил сжатые данные размером 4 мб, т.е. степень сжатия ~50%
QByteArray qUncompress ( const QByteArray & data )
Извлекает данные. Возвращает распакованный массив.
Хорошее дело. Я как-то умудрился пропустить этот функционал из виду и пришлось прикручивать вызов 7z через QProcess. А там, понятное дело, приходиться кучу всего проверять еще.
ОтветитьУдалить