Golang标准库——compress/lzw

DevilRoshan · · 631 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

lzw

lzw包实现了Lempel-Ziv-Welch数据压缩格式,这是一种T. A. Welch在“A Technique for High-Performance Data Compression”一文(Computer, 17(6) (June 1984), pp 8-19)提出的一种压缩格式。

本包实现了用于GIF、TIFF、PDF文件的lzw压缩格式,这是一种最长达到12位的变长码,头两个非字面码为clear和EOF码。

type Order

type Order int

Order指定一个lzw数据流的位顺序。

const (
    // LSB表示最小权重位在前,用在GIF文件格式
    LSB Order = iota
    // MSB表示最大权重位在前,用在TIFF和PDF文件格式
    MSB
)

func NewReader

func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser

创建一个io.ReadCloser,它从r读取并解压数据。调用者有责任在结束读取后调用返回值的Close方法;litWidth指定字面码的位数,必须在[2,8]范围内,一般为8。

func NewWriter

func NewWriter(w io.Writer, order Order, litWidth int) io.WriteCloser

创建一个io.WriteCloser,它将数据压缩后写入w。调用者有责任在结束写入后调用返回值的Close方法;litWidth指定字面码的位数,必须在[2,8]范围内,一般为8。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:DevilRoshan

查看原文:Golang标准库——compress/lzw

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

631 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传