Spec-Zone.ru › Go

Пакет lzw

  • import "compress/lzw"
  • Обзор
  • Индекс

Обзор

Пакет lzw реализует сжатый формат данных Lempel-Ziv-Welch, описанный в T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (июнь 1984), стр. 8-19.

В частности, он реализует LZW, как используется в форматах файлов GIF и PDF, что означает коды переменной длины до 12 бит и первые два нелитеральных кода — код окончания и код конца файла.

Формат файла TIFF использует похожую, но несовместимую версию алгоритма LZW. Смотрите пакет golang.org/x/image/tiff/lzw для реализации.

Индекс

  • func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser
  • func NewWriter(w io.Writer, order Order, litWidth int) io.WriteCloser
  • тип Order
  • тип Reader
  • func (r *Reader) Close() error
  • func (r *Reader) Read(b []byte) (int, error)
  • func (r *Reader) Reset(src io.Reader, order Order, litWidth int)
  • тип Writer
  • func (w *Writer) Close() error
  • func (w *Writer) Reset(dst io.Writer, order Order, litWidth int)
  • func (w *Writer) Write(p []byte) (n int, err error)

Файлы пакета

reader.go writer.go

func NewReader

func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser

NewReader создает новый io.ReadCloser. Чтение из возвращаемого io.ReadCloser считывает и распаковывает данные из r. Если r также не реализует io.ByteReader, декомпрессор может прочитать больше данных из r, чем необходимо. Ответственный за вызов Close на ReadCloser после завершения чтения. Число битов для использования кодов литералов, litWidth, должно быть в диапазоне [2,8] и обычно равно 8. Оно должно совпадать с litWidth, используемым во время сжатия.

Гарантируется, что базовый тип возвращаемого io.ReadCloser — *Reader.

func NewWriter

func NewWriter(w io.Writer, order Order, litWidth int) io.WriteCloser

NewWriter создает новый io.WriteCloser. Записи в возвращаемый io.WriteCloser сжимаются и записываются в w. Ответственный за вызов Close на WriteCloser после завершения записи. Число битов для использования кодов литералов, litWidth, должно быть в диапазоне [2,8] и обычно равно 8. Входные байты должны быть меньше 1<<litWidth.

Гарантируется, что базовый тип возвращаемого io.WriteCloser — *Writer.

тип Order

Order определяет порядок битов в потоке данных LZW.

type Order int
const (
    // LSB means Least Significant Bits first, as used in the GIF file format.
    LSB Order = iota
    // MSB means Most Significant Bits first, as used in the TIFF and PDF
    // file formats.
    MSB
)

тип Reader 1.17

Reader — это io.Reader, который можно использовать для чтения сжатых данных в формате LZW.

type Reader struct {
    // contains filtered or unexported fields
}

func (*Reader) Close 1.17

func (r *Reader) Close() error

Close закрывает Reader и возвращает ошибку для всех будущих операций чтения. Он не закрывает базовый io.Reader.

func (*Reader) Read 1.17

func (r *Reader) Read(b []byte) (int, error)

Read реализует io.Reader, читая несжатые байты из базового Reader.

func (*Reader) Reset 1.17

func (r *Reader) Reset(src io.Reader, order Order, litWidth int)

Reset очищает состояние Reader и позволяет использовать его повторно как новый Reader.

тип Writer 1.17

Writer — это компрессор LZW. Он записывает сжатую форму данных в базовый writer (см. NewWriter).

type Writer struct {
    // contains filtered or unexported fields
}

func (*Writer) Close 1.17

func (w *Writer) Close() error

Close закрывает Writer, сбрасывая все ожидающие данные. Он не закрывает базовый writer w.

func (*Writer) Reset 1.17

func (w *Writer) Reset(dst io.Writer, order Order, litWidth int)

Reset очищает состояние Writer и позволяет использовать его повторно как новый Writer.

func (*Writer) Write 1.17

func (w *Writer) Write(p []byte) (n int, err error)

Write записывает сжатое представление p в базовый writer w.

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/compress/lzw/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API