Package lzw

import "compress/lzw"
Overview
Index

Overview ▾

包lzw实现了Le Welch-Ziv-Welch压缩数据格式,该格式在TA Welch,"高性能数据压缩技术",计算机,17(6)(1984年6月),第8-19页中进行了描述.

特别是,它实现了GIF和PDF文件格式所使用的LZW,这意味着最多12位的可变宽度代码,而前两个非文字代码是明码和EOF代码.

TIFF文件格式使用LZW算法的相似但不兼容的版本. 有关实现,请参见golang.org/x/image/tiff/lzw软件包.

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

顺序指定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
)

by  ICOPY.SITE