Go参考手册
压缩 | compress
压缩/lzw | compress/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
包文件
reader.go writer.go
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
)
压缩 | compress相关
Go 是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。
主页 | https://golang.org/ |
源码 | https://go.googlesource.com/go |
发布版本 | 1.9.2 |