?
? ????? PHP ??? ???? ??? ?? ??
import "compress/lzw"
概述
索引
軟件包 lzw 實現(xiàn)了 Le Welpel-Ziv-Welch 壓縮數(shù)據(jù)格式,在TA Welch 的“A Technique for High-Performance Data Compression(一種用于高性能數(shù)據(jù)壓縮的技術)”Computer, 17(6) (June 1984), pp 8-19.
特別是,它實現(xiàn)了 GIF 和 PDF 文件格式所使用的 LZW,這意味著可變寬度代碼可達 12 位,前兩個非文字代碼是一個清晰的代碼和一個 EOF 代碼。
TIFF 文件格式使用類似但不兼容的LZW算法。有關實現(xiàn),請參閱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 創(chuàng)建一個新的 io.ReadCloser。從返回的io.ReadCloser 中讀取并解壓縮來自r的數(shù)據(jù)。如果 r 不執(zhí)行io.ByteReader,則解壓縮程序可能從 r 讀取比所需更多的數(shù)據(jù)。完成閱讀時,調(diào)用者有責任在 ReadCloser 上調(diào)用 Close。用于文字代碼的位數(shù) litWidth 必須在2,8范圍內(nèi),通常為8。它必須等于壓縮過程中使用的 litWidth。
func NewWriter(w io.Writer, order Order, litWidth int) io.WriteCloser
NewWriter 創(chuàng)建一個新的 io.WriteCloser。寫入返回的io.WriteCloser 被壓縮并寫入w。撰寫完成后,調(diào)用者有責任在WriteCloser 上調(diào)用 Close。用于文字代碼的位數(shù) litWidth 必須在2,8 范圍內(nèi),通常為 8.輸入字節(jié)必須小于 1<<litWidth。
Order 指定 LZW 數(shù)據(jù)流中的位排序。
type Order int
const ( // LSB首先表示最低有效位,如GIF文件格式中所用。 LSB Order = iota // MSB意味著首先使用最高有效位,如TIFF和PDF中所用 // 文件格式。 MSB)