Подмодуль compress.zlib
Подмодуль compress.zlib предоставляет возможность сжимать и
распаковывать данные с использованием алгоритма
zlib. Использовать компрессор
zlib можно следующим образом:
-
Создайте экземпляр компрессора с помощью функции compress.zlib.new():
local zlib_compressor = require('compress.zlib').new()-- or --local zlib_compressor = require('compress').zlib.new()При необходимости можно передать параметры сжатия (zlib_opts), специфичные для
zlib:
local zlib_compressor = require('compress.zlib').new({level = 5,mem_level = 5,strategy = 'filtered'})compressed_data = zlib_compressor:compress('Hello world!')decompressed_data = zlib_compressor:decompress(compressed_data)print(decompressed_data)
- Чтобы сжать указанные данные, используйте метод compress():
local zlib_compressor = require('compress.zlib').new({level = 5,mem_level = 5,strategy = 'filtered'})compressed_data = zlib_compressor:compress('Hello world!')decompressed_data = zlib_compressor:decompress(compressed_data)print(decompressed_data)
- Чтобы распаковать данные, вызовите decompress():
local zlib_compressor = require('compress.zlib').new({level = 5,mem_level = 5,strategy = 'filtered'})compressed_data = zlib_compressor:compress('Hello world!')decompressed_data = zlib_compressor:decompress(compressed_data)print(decompressed_data)
Ниже приведен список функций и объектов compress.zlib.
Имя | Назначение |
|---|---|
Создает экземпляр компрессора | |
Экземпляр компрессора | |
Параметры конфигурации компрессора |
Создает экземпляр компрессора zlib.
Параметры:
zlib_opts(table) — параметры сжатияzlib(см. zlib_opts)
Возвращает
новый экземпляр компрессора zlib (см.
zlib_compressor)
Тип возвращаемого значения
userdata
Пример:
local zlib_compressor = require('compress.zlib').new({level = 5,mem_level = 5,strategy = 'filtered'})compressed_data = zlib_compressor:compress('Hello world!')decompressed_data = zlib_compressor:decompress(compressed_data)print(decompressed_data)
Экземпляр компрессора, предоставляющий API для сжатия и распаковки
данных с использованием алгоритма zlib. Чтобы создать компрессор
zlib, вызовите compress.zlib.new().
Сжимает указанные данные.
Параметры:
data(string) — данные для сжатия
Возвращает
сжатые данные
Тип возвращаемого значения
string
Пример:
local zlib_compressor = require('compress.zlib').new({level = 5,mem_level = 5,strategy = 'filtered'})compressed_data = zlib_compressor:compress('Hello world!')decompressed_data = zlib_compressor:decompress(compressed_data)print(decompressed_data)
Распаковывает указанные данные.
Параметры:
data(string) — данные для распаковки
Возвращает
распакованные данные
Тип возвращаемого значения
string
Пример:
local zlib_compressor = require('compress.zlib').new({level = 5,mem_level = 5,strategy = 'filtered'})compressed_data = zlib_compressor:compress('Hello world!')decompressed_data = zlib_compressor:decompress(compressed_data)print(decompressed_data)
Параметры конфигурации zlib_compressor. Эти параметры можно передать в функцию compress.zlib.new().
Пример:
local zlib_compressor = require('compress.zlib').new({level = 5,mem_level = 5,strategy = 'filtered'})compressed_data = zlib_compressor:compress('Hello world!')decompressed_data = zlib_compressor:decompress(compressed_data)print(decompressed_data)
Задает уровень сжатия zlib для настройки соотношения степени сжатия и
скорости. Более низкий уровень повышает скорость сжатия за счет степени
сжатия.
- По умолчанию:
6 - Минимум:
0(без сжатия) - Максимум:
9
Задает объем памяти, выделяемой для компрессора zlib. Чем больше
значение, тем выше скорость и степень сжатия.
- По умолчанию:
8 - Минимум:
1 - Максимум:
9
Задает стратегию сжатия. Возможные значения:
default— для обычных данных.huffman_only— использует только кодирование Хаффмана (без сопоставления строк). Самый быстрый алгоритм сжатия, но не очень эффективный для большинства данных.filtered— для данных, созданных фильтром или предиктором. Отфильтрованные данные состоят в основном из небольших значений со случайным распределением. Этот алгоритм сжатия настроен на лучшее сжатие таких данных.rle— ограничивает расстояние сопоставления до одного (кодирование длин серий).rleразработан почти таким же быстрым, какhuffman_only, но обеспечивает лучшее сжатие для данных изображений PNG.fixed— предотвращает использование динамических кодов Хаффмана и предоставляет более простой декодер для специальных приложений.