压缩/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
包文件
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
)