压缩/lzw | compress/lzw

Package lzw

  • import "compress/lzw"

  • 概述

  • 索引

概述

软件包 lzw 实现了 Le Welpel-Ziv-Welch 压缩数据格式,在TA Welch 的“A Technique for High-Performance Data Compression(一种用于高性能数据压缩的技术)”Computer, 17(6) (June 1984), pp 8-19.

特别是,它实现了 GIF 和 PDF 文件格式所使用的 LZW,这意味着可变宽度代码可达 12 位,前两个非文字代码是一个清晰的代码和一个 EOF 代码。

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

type Order

包文件

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 读取比所需更多的数据。完成阅读时,调用者有责任在 ReadCloser 上调用 Close。用于文字代码的位数 litWidth 必须在2,8范围内,通常为8。它必须等于压缩过程中使用的 litWidth。

func NewWriter(查看源代码)

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

NewWriter 创建一个新的 io.WriteCloser。写入返回的io.WriteCloser 被压缩并写入w。撰写完成后,调用者有责任在WriteCloser 上调用 Close。用于文字代码的位数 litWidth 必须在2,8 范围内,通常为 8.输入字节必须小于 1<<litWidth。

type Order(查看源代码)

Order 指定 LZW 数据流中的位排序。

type Order int

const ( // LSB首先表示最低有效位,如GIF文件格式中所用。 LSB Order = iota // MSB意味着首先使用最高有效位,如TIFF和PDF中所用 // 文件格式。 MSB )