# package gif

`import "image/gif"`

gif包实现了gif文件的编码器和解码器。gif格式参见：http://www.w3.org/Graphics/GIF/spec-gif89a.txt

## type Options

    type Options struct {
        // NumColors是图像中的最多颜色数，范围[1, 256]
        NumColors int
        // Quantizer用于生成NumColors大小的调色板，为nil时默认使用palette.Plan9
        Quantizer draw.Quantizer
        // Drawer用于将图像写入期望的调色板格式的图像，为nil时会使用draw.FloydSteinberg
        Drawer draw.Drawer
    }

Options是编码参数。

## func Decode

    func Decode(r io.Reader) (image.Image, error)

从文件流解码并返回GIF文件中的第一幅图像。

## func DecodeConfig

    func DecodeConfig(r io.Reader) (image.Config, error)

返回GIF图像的色彩模型和尺寸；函数不会解码整个图像文件。

## func Encode

    func Encode(w io.Writer, m image.Image, o *Options) error

函数将图像以GIF格式写入w中。

## type GIF

    type GIF struct {
        Image     []*image.Paletted // 连续的图像
        Delay     []int             // 每一帧延迟时间，单位是0.01s
        LoopCount int               // 总的循环时间
    }

GIF类型代表可能保存在GIF文件里的多幅图像。

### func DecodeAll

    func DecodeAll(r io.Reader) (*GIF, error)

函数从r中读取一个GIF格式文件；返回值中包含了连续的图帧和时间信息。

### func EncodeAll

    func EncodeAll(w io.Writer, g *GIF) error

函数将g中所有的图像按指定的每帧延迟和累计循环时间写入w中。