?
本文檔使用 PHP中文網手冊 發(fā)布
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 創(chuàng)建一個新的 io.ReadCloser。從返回的io.ReadCloser 中讀取并解壓縮來自r的數據。如果 r 不執(zhí)行io.ByteReader,則解壓縮程序可能從 r 讀取比所需更多的數據。完成閱讀時,調用者有責任在 ReadCloser 上調用 Close。用于文字代碼的位數 litWidth 必須在2,8范圍內,通常為8。它必須等于壓縮過程中使用的 litWidth。
func NewWriter(w io.Writer, order Order, litWidth int) io.WriteCloser
NewWriter 創(chuàng)建一個新的 io.WriteCloser。寫入返回的io.WriteCloser 被壓縮并寫入w。撰寫完成后,調用者有責任在WriteCloser 上調用 Close。用于文字代碼的位數 litWidth 必須在2,8 范圍內,通常為 8.輸入字節(jié)必須小于 1<<litWidth。
Order 指定 LZW 數據流中的位排序。
type Order int
const ( // LSB首先表示最低有效位,如GIF文件格式中所用。 LSB Order = iota // MSB意味著首先使用最高有效位,如TIFF和PDF中所用 // 文件格式。 MSB)