©
本文档使用
php.cn手册 发布
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(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(w io.Writer, order Order, litWidth int) io.WriteCloser
NewWriter 创建一个新的 io.WriteCloser。写入返回的io.WriteCloser 被压缩并写入w。撰写完成后,调用者有责任在WriteCloser 上调用 Close。用于文字代码的位数 litWidth 必须在2,8 范围内,通常为 8.输入字节必须小于 1<<litWidth。
Order 指定 LZW 数据流中的位排序。
type Order int
const ( // LSB首先表示最低有效位,如GIF文件格式中所用。 LSB Order = iota // MSB意味着首先使用最高有效位,如TIFF和PDF中所用 // 文件格式。 MSB)