ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# package lzw `import "compress/lzw"` lzw包实现了Lempel-Ziv-Welch数据压缩格式,这是一种T. A. Welch在“A Technique for High-Performance Data Compression”一文(Computer, 17(6) (June 1984), pp 8-19)提出的一种压缩格式。 本包实现了用于GIF、TIFF、PDF文件的lzw压缩格式,这是一种最长达到12位的变长码,头两个非字面码为clear和EOF码。 ## Index * [type Order](#Order) * [func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser](#NewReader) * [func NewWriter(w io.Writer, order Order, litWidth int) io.WriteCloser](#NewWriter) ## type [Order](https://github.com/golang/go/blob/master/src/compress/lzw/reader.go#L25 "View Source") ``` type Order int ``` Order指定一个lzw数据流的位顺序。 ``` const ( // LSB表示最小权重位在前,用在GIF文件格式 LSB Order = iota // MSB表示最大权重位在前,用在TIFF和PDF文件格式 MSB ) ``` ## func [NewReader](https://github.com/golang/go/blob/master/src/compress/lzw/reader.go#L225 "View Source") ``` func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser ``` 创建一个io.ReadCloser,它从r读取并解压数据。调用者有责任在结束读取后调用返回值的Close方法;litWidth指定字面码的位数,必须在[2,8]范围内,一般为8。 ## func [NewWriter](https://github.com/golang/go/blob/master/src/compress/lzw/writer.go#L234 "View Source") ``` func NewWriter(w io.Writer, order Order, litWidth int) io.WriteCloser ``` 创建一个io.WriteCloser,它将数据压缩后写入w。调用者有责任在结束写入后调用返回值的Close方法;litWidth指定字面码的位数,必须在[2,8]范围内,一般为8。