首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

压缩/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

包文件

func NewReader(查看源代码)

代码语言:javascript
复制
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(查看源代码)

代码语言:javascript
复制
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。

Order 指定 LZW 数据流中的位排序。

代码语言:javascript
复制
type Order int
代码语言:txt
复制
const (
        // LSB首先表示最低有效位,如GIF文件格式中所用。
        LSB Order = iota
        // MSB意味着首先使用最高有效位,如TIFF和PDF中所用
        // 文件格式。
        MSB
)

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com